Hallo,
ich würde gerne auf ActiveControl eines auf einem Panel erstellten Formulars zugreifen.
Leider funktioniert das nicht so wie ich es mir vorstelle (vorletzte Zeile). Wenn ich über Screen.ActiveForm.ActiveControl gehe funktioniert es ja auch?!
Durch den SpeedButton dürfte es ja seinen Fokus nicht verlieren.
Delphi-Quellcode:
procedure TForm2.FormCreate(Sender: TObject);
begin
FTEstForm := TForm3.Create(Self);
FTEstForm.Parent := Panel1;
FTEstForm.BorderStyle := bsNone;
FTEstForm.Align := alClient;
FTEstForm.Visible := true;
end;
procedure TForm2.SpeedButton1Click(Sender: TObject);
begin
Memo1.Lines.Clear;
Memo1.Lines.Add('Screen.ActiveForm.ACtiveControl: ' + Screen.ActiveForm.ActiveControl.Name);
if Assigned(FTEstForm.ActiveControl) then
Memo1.Lines.Add('FTEstForm.ActiveControl: ' + FTEstForm.ActiveControl.Name)
else
Memo1.Lines.Add('FTEstForm.ActiveControl: nil ! <-- warum?');
end;