Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi eigene Kompo -> div. Probleme unter Delphi9 (https://www.delphipraxis.net/53321-eigene-kompo-div-probleme-unter-delphi9.html)

FriFra 14. Sep 2005 08:17


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:
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;

...
Unter Delphi 5, 6 und 7 gibt es das Problem nicht :roll:

tigerman33 14. Sep 2005 08:32

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?

FriFra 14. Sep 2005 08:39

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.

r2c2 14. Sep 2005 09:14

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

n0b0dy 14. Sep 2005 09:26

Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
 
hm, probiers doch mal so :

Delphi-Quellcode:
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?
MfG

FriFra 14. Sep 2005 09:29

Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
 
Das tue ich doch:
Delphi-Quellcode:
LocalMail := TFr_LocalMail.Create(Self);
@n0b0dy:
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 ;)

n0b0dy 14. Sep 2005 09:31

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....

FriFra 14. Sep 2005 09:36

Re: eigene Kompo -> Element '' hat kein übergeordnetes Fe
 
Zitat:

Zitat von n0b0dy
versteh ich nicht. du kannst doch in jeder prcoedure über Self daraufzugreifen. Sind ja dann im Objekt deklariert....

Da versteh ich jetzt nicht was Du meinst :roll: :gruebel: ...

Robert Marquardt 14. Sep 2005 09:42

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.

n0b0dy 14. Sep 2005 09:48

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 15:51 Uhr.
Seite 1 von 2  1 2      

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