Delphi-PRAXiS

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 Problem bei eigener Komponente: Kein übergeordnetes Fenster (https://www.delphipraxis.net/122451-problem-bei-eigener-komponente-kein-uebergeordnetes-fenster.html)

Ares 16. Okt 2008 12:39


Problem bei eigener Komponente: Kein übergeordnetes Fenster
 
Hallo!

Ich versuche mich gerade daran eine eigene kleine Komponente zu entwickeln. Eigentlich geht es nur darum auf einem Panel verschiedene andere Komponenten unterzubringen (Labels, ComboBox, Button) und das gemeinsame Verhalten zu steuern.

Dazu habe ich meine Komponente also von TCustomPanel abgeleitet und wollte nun im Constructor die weiteren Komponenten erzeugen und auf dem Panel platzieren. Bei den Labels klappt das prima, aber bei der ComboBox erhalte ich einen Fehler:

Delphi-Quellcode:
type
  TCompPanel = class(TCustomPanel)
  private
    FInfoLabel : TLabel;
    FComboBox : TComboBox;
  public
    constructor Create(AOwner: TComponent); override;
  end;

...

constructor TCompPanel .Create(AOwner: TComponent);
begin
  inherited;
  height := 50;
  width  := 250;
  caption := '';

  FInfoLabel := TLabel.Create(self);
  FInfoLabel.Parent := self;
  FInfoLabel.Top    := 5;
  FInfoLabel.Left   := 5;
  FInfoLabel.Caption := 'Info';

  FComboBox := TComboBox.Create(self);
  FComboBox.Parent := self;
  FComboBox.Top    := 5;
  FComboBox.Left   := 150;
  //FActionComboBox.Items.Clear;
  //FComboBox.Items.Add('Keine Rücksicherung');
end;
In dieser Form funktioniert alles prima. Aktiviere ich aber die letzten beiden Zeilen mit der die Items der ComboBox gelöscht und dann befüllt werden, erhalte ich den Fehler:

Zitat:

EInvalidOperation
Element '' hat kein übergeordnetes Fenster.
Was mache ich hier falsch? Ich habe der ComboBox doch das Panel als Parent-Komponente zugewiesen?

Herzlichen Dank für eure Hilfe!
Ares

oki 16. Okt 2008 12:42

Re: Problem bei eigener Komponente: Kein übergeordnetes Fens
 
Hi,

im Constructor gibt es noch keinen zugewiesenen Parent. Benutze und überschreibe CreateWnd. Die ist protected und virtual.

Gruß oki

Ares 16. Okt 2008 14:15

Re: Problem bei eigener Komponente: Kein übergeordnetes Fens
 
Vielen Dank für den Hinweis!


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:16 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