Neue Komponente(TGraphicsControl) TShape instanzieren
-
Hallo,
ich habe mir eine neue Komponente angelegt und erbe von TGraphicsControl. nun möchte ich ein Shape Object instanzieren.
Wie Händel ich das mit dem Parent?
MFG
P.s. Wer Rechtschreibfehler findet darf sie behalten
-
Hallo
Am besten sollte der Parent und der Owner des Shapes dein TGraphicsControl-Derivat sein.
bis bald
akari
-
Hallo akari,
danke für deine Antwort.
ich habe das so versucht:
__fastcall NeueKomponente::NeueKomponente(TComponent* Owner) : TGraphicControl(Owner) { Shape = new TShape(this); Shape->Parent = this; }
aber ich bekomm diesen Fehler
[C++ Fehler] NeueKompote.cpp(33): E2034 Konvertierung von 'NeueKomponente * const' nach 'TWinControl *' nicht möglich
-
Hallo
Da hab ich nicht bedacht das TGraphicControl nicht von TWinControl abgeleitet ist, und deshalb nicht als Parent taugt. Da müßtest du wohl noch etwas rumsticken, damit du den Parent deines NeueKomponente auch gleich als Parent des Shapes mitsetzt.
Allerdings halte ich dann den ganzen Aufwand für zu groß, denn deine NeueKomponente kann doch gleich alle möglichen Zeichenoperationen ausführen, warum brauchst du noch extra TShape-Komponenten? Zeichne doch alle Kreise, Dreiecke und Rechtecke direkt mit den Canvas-Operationen.bis bald
akari
-
Hi,
danke für die schnelle Antwort. Natürlich kann ich es komplett selber zeichen. Aber aus faulheit wollte ich das ganze mit TShape machen.
Ok in meiner Komponente werde ich das zu fuss machen. Rein interesse halber, wie würde das denn gemacht werden? also das umstricken?
MFG
Tante Edith:
Kennst du zufällig eine Quelle wo man sieht wer was von wem Erbt? wäre auch ma linteressant.
-
Hallo
Ich würde schauen ob man den Setter von TControl::Parent für dein NeueKomponente überschreiben kann, dann wärs erledigt.
Bei jeder Komponente in der Builder-Hilfe ist unter dem Punkt "Hierarchie" angegeben von welchen Klassen abgeleitet wurde.
bis bald
akari
-
Hi,
ich habe bereits versucht die Eigenschaften Height und Width die meine Komponente von TGraphicsControl geerbt hat zu überschreiben.
(die Setter sowie FHeigh und FWidth).
Ich instanziere in meiner Komponente eine Bitmap die ich dann mit Canvas->Draw darstelle, nun möchte ich das sich die überschriebene Eigenschaften (Height und Width) auf die Größe der Bitmap bezieht.
Die Komponente war dann zur Entwurfszeit sichtbar(die Bitmap), nach dem starten des Progamms dann aber nicht mehr.MFG