Komponente:Mit Create auf erstelltes Panel zugreifen
Hallo und frohe Weihnachten,
ich steh gerade auf dem Schlauch: Ich erzeuge eine Komponente abgeleitet von TPanel. Im constructor werden neben 1 StaticText auch ein Panel und in diesem Panel ein Image erzeugt.
Delphi-Quellcode:
Soweit so gut - nur wenn ich diese Komponente erzeuge, z. B.:
constructor TMaskFrame.Create(AOwner: TComponent);
begin inherited Create(AOwner); //interne Variablen erzeugen FPicture := TPicture.Create; //feste Werte für MaskFrame BevelInner := bvNone; BevelOuter := bvRaised; BevelWidth := 1; BorderWidth := 1; BorderStyle := bsNone; Enabled := true; Visible := false; Caption := ''; //StaticText erzeugen FStatic_Caption := TStaticText.Create(self); with FStatic_Caption do begin Parent := self; { .. } end; //Panel erzeugen FWork_Panel := TPanel.Create(self); with FWork_Panel do begin Parent := self; { .. } end; //Image erzeugen FBackground_Image := TImage.Create(FWork_Panel); with FBackground_Image do begin Parent := FWork_Panel; { .. } end;
Delphi-Quellcode:
wird ja auf das erste Panel zugegriffen.
Maske := TMaskFrame.Create(Form1);
Ich möchte aber auf das Work_Panel mit dem o. s. Create zugreifen können. Dies wird leider aber erst erzeugt, wenn das HauptPanel erzeugt wird. wie könnte ich das realisieren? (ich hoffe es ist verständlich was für ein Problem ich hab) |
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
Zitat:
|
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
Moin Helmi,
Zitat:
Also ich habe das Problem nicht verstanden, zumal sich mir der Sinn verschliesst. |
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
Liste der Anhänge anzeigen (Anzahl: 1)
na gut
Ich versuchs mal bildlich (siehe Anhang): Das ganze ist das erstellte Panel (nennen wir es HauptPanel). Das gelbe Feld oben ist das StaticText, es wird auf dem HauptPanel und wird im Create des HauptPanels erzeugt. Das blaue Feld ist das 2. Panel (nennen wir es WorkPanel). Das liegt auch auf dem HauptPanel und wird auch im Create des HauptPanels erzeugt. Das ganze ist eine Komponente. Wenn ich nun diese Komponente erzeuge, und z. B. Color verändern möchte, dann passiert das auf dem HauptPanel. Es soll aber sein, dass die erzeugte Komponente nicht auf das HauptPanel zeigt, sondern auf das Workpanel (also auf den blauen Bereich) |
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
schreib ne funtion die darauf zugreift. :D
|
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
Also entweder eine Property für das Workpanel oder die Properties für die Eigenschaften neu Implemnetieren.
|
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
Moin Helmi,
also ich würde dieses Workpanel einfach als Eigenschaft veröffentlichen, so das die Eigenschaften für beide getrennt eingestellt werden können. Ausserdem könntest Du auch die jeweiligen Eigenschaften direkt nach aussen führen. Sollte das Hauptpanel aber eigentlich sowieso nicht direkt zur Verfügung stehen, frage ich mich, warum Du dann von TPanel ableitest, und nicht, z.B., von TComponent. |
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
Zitat:
Delphi-Quellcode:
Auch wenn man es nicht sieht, aber das HauptPanel ist sichtbar und macht den äusseren Rand.
property WorkPanel: TPanel read FWork_Panel;
Aber mal blöd gefragt: Wie könnte man das mit TComponent machen? |
Re: Komponente:Mit Create auf erstelltes Panel zugreifen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz