Hallo,
wer schon einmal in die Verlegenheit gekommen ist, von einem TFrame aus auf das Formular zugreifen zu müssen, auf dem das Frame liegt, wird irgendwann feststellen müssen, dass das TFrame von CodeGear keine Möglichkeit dazu bietet.
Nachfolgend möchte ich eine relativ einfache Möglichkeit vorstellen, wie dies dennoch zu bewerkstelligen ist. Das Zauberwort heißt Vererbung.
Zuerst erstellen wir uns unseren eigenen Nachfahren von TFrame. In diesem definieren wir zuerste eine private Variable FPartenForm vom Typ TForm sowie eine öffentliche Property ParentForm, die ausschließlich lesend auf FPartenForm zugreift.
Anschließend überschreiben wir den Constructor unseres Frames wie folgt:
Delphi-Quellcode:
constructor TMeinFrameForm.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FParentForm := TForm(AOwner);
end;
Nun kann man in allen Nachfahren von TMeinFrameForm über die Property ParentForm auf das Formular zugreifen, aufdem das Frame liegt