2017-04-18 47 views
1

我有一個帶有pagecontrol的mainform(frmMain)。頁面控件在啓動時由幾種形式填充,讓我們說Form1,Form2和Form3確定哪個表單在活動頁面中,delphi

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; 

Activepage是類型的TTabsheet

回答

1

我找到了解決方案:

with pagecontrol1 do 
begin 
    with tform(activepage.controls[0]) do 
    if assigned(onactivate) then 
    onactivate(self); 
end; 
相關問題