我設計了一個 MDIForm,上面有一個工具欄,分別是[第一條紀錄].[前一條紀錄].[下一條紀錄].[最後一條紀錄].[添加].[保存].[搜索].[刪除]等按鈕,我想在 MDIForm 中的這些按鈕能實現文字描述的功能,例如,我有一個子窗口 Form1,在 Form1里有一個過程 SearchData,另外也有一個子窗口 Form2,它也有一個過程SearchData,我想通過點擊MDIForm的[搜索]能夠運行當前活動的子窗口的SearchData過程,我知道可以這樣實現:
   
    if Sender.ClassName is Form1 then
       Form1.SearchData
    else if Sender.ClassName is Form2 then
       Form2.SearchData;
    .......
    ......
    .....
請教高手大蝦們,有沒有更簡單的方法????

解决方案 »

  1.   

    改函数如何
    SearchData(Sender.ClassName)
      

  2.   

    該函數放在 MDIForm 嗎?
      

  3.   

    SearchDate(Sender:TObject);
    可以放在MDIForm中,
    判断时用:If Sender = Form1 then .....
             else If Sender = Form2 then .......
    搞定!!
      

  4.   

    始終還是很麻煩,我想像vb一樣 ActiveForm.SearchData,不知道行不行?
      

  5.   

    我用過 ActiveMDIChild,但是出現編譯錯誤.
      

  6.   

    TMyform=Class(Tform)
     public
       procedure SearchData;Virtual;
    end;
    TForm1=Class(TMyform)
      public
        procedure SearchData;override;
    end;TForm2=Class(TMyform)
      public
        procedure SearchData;override;
    end;在主窗体的按钮事件中写  if Assigned(ActiveMDIChild) then
        begin
          
          TMyForm(ActiveMDIChild).SearchData;
      
        end;------------------对象的多态性
      

  7.   

    Thank you,因為在單位上網,星期天休息,所以來不及結帖