TImage



  • Hallo zusammen!

    Ich habe folgendes Problem / Frage und hoffe, dass mir einer weiterhelfen kann.
    Ich bin gerade am Anfang der OOP und komm nicht mehr weiter.
    In der FAQ hab ich leider auch nichts passendes gefunden.

    Ich möchte eine Klasse schreiben, die mir ein analoges Spannungs - Messgerät darstellt.

    Zu meinem Problem:

    Wie schaffe ich es ein Image auf dem Formular anzuzeigen, also
    d.h.

    TImage *Analog = new TImage(Owner);
    Analog->Canvas->.......
    

    egal was ich schon versucht habe und nachgelesen habe, ich schaffe es nicht,
    dass das Image angezeigt wird. 😞

    also ich hoffe es kann mir jemand weiterhelfen!!

    danke schon mal

    gruss cplus+



  • Hallo

    wenn du es wirklich dynamisch erstellen willst, must du Owner un parent angeben, was zum Beispiel das Form ist

    TImage* Analog = new TImage(this);
    Analaog->Parent = this;
    ...
    

    bis bald
    akari



  • danke das klappt so weit auch, aber ich habe jetzt das nächste problem.
    ich möchte ja eigentlich eine eigene klasse entwerfen und wenn ich dann im konstruktor dieser klasse den code schreibe, dann schimpft er mich mal wieder und ich hab keine ahnung an was das liegen könnte...... 😞

    Klasse:

    class TAnalog : TImage
    {
     public:
     TAnalog();
     TImage *Gauge;
    };
    extern PACKAGE TAnalog *Analog;
    

    Konstruktor:

    TAnalog::TAnalog() : TImage(this)
    {
     Gauge = new TImage(this);
     Gauge->Parent->ScaleBy(40,49);
     Gauge->Canvas->.....;
    }
    

    [C++ Fehler] an.cpp(34): E2034 Konvertierung von 'TAnalog * const' nach 'TWinControl *' nicht möglich

    Wie gesagt bin halt noch anfänger 🙂



  • sorry hab den falschen code rein kopiert

    TAnalog::TAnalog() : TImage(this)
    {
     Gauge = new TImage(this);
     Gauge->Parent = this;
     Gauge->Canvas->.....;
    }
    

    🙂



  • Wieso leitest du eine Klasse von TImage ab, die dann einen Member "TImage" hat?
    was willst du damit bezwecken?



  • also ich bin halt noch am anfang und ich dachte ich brauch die vererbung
    aber wenns ohne auch geht. werdes mal versuchen...



  • class MyClass
    {
    public:
        int x;
    };
    class ErbeVonMyClass : MyClass
    {
    public:
        int y;
    };
    

    wenn du eine Klasse so von einer anderen ableitest, so erbt die abgeleitete klasse alle member variabeln

    MyClass my;
    my.x = 33;     // geht
    my.y = 33;   // geht nicht
    
    ErbeVonMyClass myErbe;
    myErbe.x = 33; //geht
    myErbe.y = 33; //geht auch
    

    und in deinem Fall ist TAnalog ja auch ein TImage, da die Klasse alle Eigenschaften und Methoden von TImage geerbt hat.



  • schau hier mal unter "Komponenten entwickeln" http://bcb-tutorial.c-plusplus.net/inhalt.html


Anmelden zum Antworten