Neue Komponente Panel mit Shape
-
Ich habe eine Komponente von der Klasse TPanel abgeleitet. In deren Konstruktor erzeuge ich ein Shape, dessen Größe von der des Panels abhängig sein soll.
Das Shape soll innerhalb des Panels angezeigt werden, mit 4Pixeln Abstand zum Rand.
So, wie ich es versucht habe, geht es leider nicht. Warum__fastcall TPlatz::TPlatz(TComponent* Owner) : TPanel(Owner)// Erste Aktion der Konstruktor-Implementierung: // den Konstruktor von TPanel aufrufen { // Einige Eigenschaften des Panels vorbelegen BevelOuter = bvNone; Color = clWhite; Ctl3D = false; BorderWidth = 1; BorderStyle = bsSingle; Kiste = new TShape(this); Kiste->Left= 4; Kiste->Top = 4; Kiste->Heigth = Height -8; Kiste->Width = Width -8; Kiste->Visible = true; Kiste->Enabled = true; Kiste->Brush->Color = clFuchsia; Kiste->Parent = this; }
-
"Geht nicht" ist keine zulässige Fehlermeldung bzw. -beschreibung.
-
versuch's mal mit Kiste->Parent=Panel; Vielleicht klappts jetzt?
-
Oh, Verzeihung!
Ich probiere wohl schon zu Lange dran herum.
Die Komponente TShape wird erzeugt, aber die Zuweisung der Größe funktioniert nicht. Ich habe das Gefühl, dass ich zu diesem Zeitpunkt(im Konstruktor) nicht auf die Korrekten Height- und Width -Variablen des Panels zugreifen kann.
-
Versuchs trotzdem mal mit Parent.
-
-
hast du tatsächlich "Panel" hingeschrieben? oder weißt du, was ich damit gemeint hab? Du sollst Parent von Shape auf deinen Panel sezen. Ich weiß ja nicht, wei du das nennst
-
Warum so kompliziert?
du sagst deinem Panel das Border 4 Pixel gross ist
und dem Shape das Align = alClientfertig!
-
[Fullquote gelöscht]
Wozu brauchst du das ganze eigentlich , wenn ich mal fragen darf?
Edit:
Zitate bitte auf das Notwendigste beschränken. Danke!
-
@Xqgene:
Gute Idee, im Prinzip, DankeKiste->Align = alClient;
funktioniert auch, aber
BorderWidth = 4;
macht er nicht. Die Compilation ist fehlerfrei; aber mir scheint dass ich zum Zeitpunkt des Konstruktoraufrufes auf die Parameter des Panel nicht zugreifen kann. mit Height und Width ist mir ja auch so ergangen. Bloß: warum nicht? und wenn nicht im Konstruktor, wo dann ??