在设计MDI界面时,  我们都是做一共用的处理子界面显示的Procedure来统一处理MDI子界面的Create、 Show、 BringToFront等,甚至单实例,为了使子MDI在Show时处理不同的数据而需要在Show前确定某些参数,但MDI子窗体显然不可,有何好的建议.类似SDI下的Form1.ID := '111';处理:  Form1 := TForm1.Create(Self);
  Form1.ID := '111';
  Form1.Showmodal;
  Form1.Free;

解决方案 »

  1.   

    定义一个构造函数吧。
    TForm1 =  class(TForm)
    private
      ID: string;
    public
      constructor Create(AOwner: TComponent; ID: string;)
    end;im...procedure TForm1.Create(AOwner: TComponent; ID: string);
    begin
      Self.ID:=ID;
      inherited Create(AOwner);
    end;procedure TForm1.FormShow(Sender: TObject);
    begin
      //在该事件中处理
    end;
      

  2.   

    那不是每一个需要传递不同参数的MDI子界面都要建立如此一个函数.
      

  3.   

    to:zhaowin8888(zhao) 
    为每个窗体建立一个构造函数是面向对象编程的规则。