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