我想试验一个mdi窗体,在main主窗体中放了一个mainmenu,在‘文件‘下面有新建、打开、关闭三个选项
并且已经设置了formstyle为fsmdiform,另外新建了三个窗体分别命名为open  new exit等三个窗体,并且这三个窗体的formstyle为fsmdichild,并且在三个子窗体的onclose事件中对应着写
inherited;
new:=nil;而在main 中的单击事件中这样写
if new=nil then
new:=tnew.Create(self);
new.Show;
当执行的时候出现下面的错误
form 'exit' references form 'open'  decalre in unit'openpas' which is not in you uses list.do you wish to add it?  
为什么会出现这个错误?如果不加上就不能行,如果加上还是达不到实现mdi窗体的效果,为什么呢?

解决方案 »

  1.   

    因为你在main单元里面引用了openpas里面的东东,必须use才可以用的
    MDI这方面的例子很多的,找找看看吧
      

  2.   

    你参照一下:implementationuses long_server_Unit           //引用对应单元打开//
    procedure TMain_Form.EntryClick(Sender: TObject);
    begin
      if not Assigned(long_server_Form) then
         long_server_Form:=Tlong_server_Form.Create(Application);
      long_server_Form.Show;
    end;//Long_server_Form的OnClose事件
    procedure Tlong_server_Form.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      close;
      action:=cafree;
    end;
    //Long_server_Form的OnCloseDestroy事件
    procedure Tlong_server_Form.FormDestroy(Sender: TObject);
    begin
    long_server_Form := nil;
    end;
      

  3.   

    你参照一下:implementationuses long_server_Unit           //引用对应单元打开//
    procedure TMain_Form.EntryClick(Sender: TObject);
    begin
      if not Assigned(long_server_Form) then
         long_server_Form:=Tlong_server_Form.Create(Application);
      long_server_Form.Show;
    end;//Long_server_Form的OnClose事件
    procedure Tlong_server_Form.FormClose(Sender: TObject;
      var Action: TCloseAction);
    begin
      close;
      action:=cafree;
    end;
    //Long_server_Form的OnCloseDestroy事件
    procedure Tlong_server_Form.FormDestroy(Sender: TObject);
    begin
    long_server_Form := nil;
    end;