Определите, какая форма в активной странице, Delphi
У меня есть mainform (frmMain) с контролем страниц. При запуске pagecontrol заполняется несколькими формами, скажем, Form1, Form2 и Form3
procedure TForm1.FormCreate(Sender: TObject);
begin
ManualDock(frmMain.PageControl1);
show;
end;
procedure TForm2.FormCreate(Sender: TObject);
begin
ManualDock(frmMain.PageControl1);
show;
end;
procedure TForm3.FormCreate(Sender: TObject);
begin
ManualDock(frmMain.PageControl1);
show;
end;
Это прекрасно работает. Когда я затем изменяю активную страницу, я хочу, чтобы метод OnActivate вызывался в форме, соответствующей активной странице, поэтому я попробовал это;
procedure TfrmMain.PageControl1Change(Sender: TObject);
begin
with pagecontrol1 do
begin
lbHeading.Caption := activepage.Caption;
with tform(activepage) do // <= This does
if assigned(onactivate) then // <= not
onactivate(self); // <= work
end;
end;
Активная страница имеет тип TTabsheet
1 ответ
Я нашел решение:
with pagecontrol1 do
begin
with tform(activepage.controls[0]) do
if assigned(onactivate) then
onactivate(self);
end;