Zitat von
DelTurbo:
Jedes object hat ein .Create und ein .Create(
handle). In diesem
handle steht immer das übergeordnete object drin.
Ich gehe mal davon aus, dass du mit Objekt nur Komponenten meinst. Diese haben einen
Owner als übergeordnetes Element. Es gibt es keinen parameterlosen Konstruktor, sondern nur Create(AOwner), dem man den gewünschten Owner der Komponente übergibt. Bei Controls kommt als zweites übergeordnetes Element noch der Parent dazu - siehe
Owner vs. Parent in Delphi Applications.
Zitat von
DelTurbo:
Nein, nicht über den namen. Sondern über das
Handle was du beim .Create bekommst. Du kannst dann auch sachen ins RichEdit schreiben oder sonstwas machen, auch wenn es nicht sichtbar ist.
Das
Handle heißt Referenz oder auch einfach Variable.
Mein Ratschlag dazu wäre: Schmeißt die ganzen withs aus dem Code raus, dann wird diese ganze Diskussion überflüssig.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
var
i: Integer;
NewTab: TTabSheet;
RichEdit: TRichEdit;
begin
for i := 0 to 3 do
begin
NewTab := TTabSheet.Create(Self);
NewTab.PageControl := PageControl1;
NewTab.Name := 'sname' + IntToStr(i);
NewTab.Caption := IntToStr(i);
RichEdit := TRichEdit.Create(Self);
RichEdit.Parent := NewTab;
RichEdit.Name := 'RichEdit' + IntToStr(i);
RichEdit.Text := RichEdit.Name;
end;
end;
Ich hab hier als Owner überall die Form übergeben. Die Hierarchie wird über die Parents hergestellt. So macht's auch Delphi, wenn man die Komponenten per Formdesigner erstellt.