Thema: Delphi Parent Problem

Einzelnen Beitrag anzeigen

IngoD7

Registriert seit: 17. Feb 2004
464 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Parent Problem

  Alt 17. Jan 2007, 13:55
Zitat von TStringlist:
Der Owner des Objektes muss aber nicht zwingend auch sein Parent sein.
Richtig. Das hat aber mit seinem Problem erstmal nichts zu tun.

Zitat von TStringlist:
Gut vorstellbar wäre z.B. auch die Situation bei der dieses Panel-ComboBox-Objekt selbst wieder auf einem anderen Panel Platz mehmen soll...
Ja, aber selbst wenn. Auch das berührt sein geschildertes Problem nicht. Soll das Panel-Combo-Objekt auf einem Panel2 sitzen, so könnte er das mit X:=TMyClass.Create(Panel2); direkt angeben. Panel2 wäre dann Owner und Parent, was ja durchaus machbar wäre. Ich würde das so zwar auch nicht tun, aber möglich ist es.

Ebensogut könnte man nach dem Erzeugen den Parent verbiegen:
Delphi-Quellcode:
X:=TMyClass.Create(Form1);
X.Parent:=Panel2:
Oder man könnte im Konstruktor den Parent fest einbrennen:
Delphi-Quellcode:
constructor TMyClass.Create(Compo:TComponent);
  begin
  inherited;
  parent:=Panel2;
  combo:=TCombobox.Create(self);
  combo.Parent:=self;
  end;
Als letztes könnte man auch einen Parent getrennt mit übergeben (so würde ich es wahrscheinlich machen):
Delphi-Quellcode:
X:=TMyClass.Create(Form1, Panel2);
 ...............

constructor TMyClass.Create(Compo:TComponent; WinC: TWinControl);
  begin
  inherited create(Compo);
  parent:=WinC;
  combo:=TCombobox.Create(self);
  combo.Parent:=self;
  end;
Wichtig für sein Problem ist nur, dass die Eigenschaft Parent direkt beim Erzeugen belegt wird. Mehr wollte ich nicht ausdrücken.
  Mit Zitat antworten Zitat