Einzelnen Beitrag anzeigen

Ares

Registriert seit: 5. Dez 2002
269 Beiträge
 
#1

Problem bei eigener Komponente: Kein übergeordnetes Fenster

  Alt 16. Okt 2008, 12:39
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
  Mit Zitat antworten Zitat