![]() |
eigene Kompo -> div. Probleme unter Delphi9
Ich habe eine Komponente von TCustomComboBox abgeleitet und habe nun plötzlich unter Delphi2005 (SP2) ein Problem... sobald ich die Komponente auf mein Form ziehe kommt die Meldung: Element '' hat kein übergeordnetes Fenster.
Codeauszug
Delphi-Quellcode:
Unter Delphi 5, 6 und 7 gibt es das Problem nicht :roll:
type
TFr_LocalMailComboBox = class(TCustomComboBox) private { Private-Deklarationen } ... protected { Protected-Deklarationen } ... public { Public-Deklarationen } constructor Create(AOwner: TComponent); override; destructor Destroy; override; published { Published-Deklarationen } ... end; procedure Register; implementation procedure Register; begin RegisterComponents('FriFra', [TFr_LocalMailComboBox]); end; constructor TFr_LocalMailComboBox.Create(AOwner: TComponent); begin inherited; LocalMail := TFr_LocalMail.Create(Self); { Testcode } Showmessage('jetzt'); //Diese Message kommt noch Items.Add('Test'); //hier geht dann etwas schief... :? Showmessage('ok'); //Di Message kommt wegen des Fehlers nicht SetDefaults; end; destructor TFr_LocalMailComboBox.Destroy; begin LocalMail.Free; inherited; end; ... |
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
Kommt der gleiche Fehler auch, wenn du versuchst, den Items außerhalb des Konstruktors was hinzuzufügen?
|
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
Ja. Das mit den Items innerhalb des Construktor habe ich nur mal als Test eingefügt...
Im übrigen sollte die Komponente an sich an dieser Stelle schon erzeugt sein, da "inherited" schon abgearbeitet ist. |
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
Weise mal dem LocalMail-Objekt, das scheinbar ja eine Komponente ist, n Parent zu... oder is das keine Komponente? Dann weiß ich nämlich auch nicht weiter...
mfg Christian |
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
hm, probiers doch mal so :
Delphi-Quellcode:
MfG
constructor TFr_LocalMailComboBox.Create(AOwner: TComponent);
begin inherited Create(AOwner); . . //LocalMail := TFr_LocalMail.Create(Self);.//hierrauf würde ich verzichten, was soll das denn hier? |
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
Das tue ich doch:
Delphi-Quellcode:
@n0b0dy:
LocalMail := TFr_LocalMail.Create(Self);
Ich werds mal ändern und schaun was passiert ;) Auf das Erzeugen von "LocalMail"kann ich nicht verzichten, da ich diese Komponente während der gesamten Laufzeit meiner Komponente zwingend benötige. LocalMail ist quasi dei Kernkomponente, die ComboBox ist nur quasi ein Container um die Werte darzustellen ;) |
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
versteh ich nicht. du kannst doch in jeder prcoedure über Self daraufzugreifen. Sind ja dann im Objekt deklariert....
|
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
Zitat:
|
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
Ganz offensichtlich wird bei Items.Add versucht das Fenster zu malen.
Das geht aber schief, da die Fenster noch gar nicht existieren. Insbesondere Parent ist noch nicht gesetzt und hat auch noch kein Fenster. Ueberschreibe Loaded oder AfterConstruction und mache es dort. |
Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
@FriFra :
so wie ich dich verstanden habe, willst du später über das LocalMail auf alles zugreifen. praktisch die Komponente an sich, oder!? wenn ja, kann man sich das sparen. denn in jeder Procedure würde "Self" genau das bewirken, was du vor hast.... oder was willst du damit bewirken? MfG |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz