我做了一个动态链接库,功能创建一个窗体,frmMain := TFrmMain.Create(Application); 还有些全局变量XX。当我用其他应用程序调用这个DLL,生成实例,显示窗体frmMain,然后再调用DLL,再显示窗体frmMain,也就是同时显示两个frmMain,这时发现这两个实例中的全局变量XX是共享的,在一个里改了,另一个里也相应的变了,我希望这种调用生成两个相对独立的实例,请问用什么方法解决,谢谢各位了。

解决方案 »

  1.   


    放在FRMMAIN的類裏面不行嗎? 這樣不就解決了。
      

  2.   

    不简单是数据的问题,FRMMAIN里我也会创建其他的form,如frmCom := TfrmCom.Create(Application), 然后frmCom显示出来,在一个实例里frmCom.close;frmCom := nil;后,另一个里再操作frmCom的函数也会出错的啊
      

  3.   

    在DLL中有许多Form,这些Form之间会相互引用的,而这些Form的实例就是全局变量
      

  4.   

    Dll应该有处理这种情况的方法吧,哪位大虾给点思路啊
      

  5.   

    #### 不简单是数据的问题,FRMMAIN里我也会创建其他的form,如frmCom := TfrmCom.Create(Application), 
         然后frmCom显示出来,在一个实例里frmCom.close;frmCom := nil;后,另一个里再操作frmCom的函数也会出错的啊@@@@ if frmCom <> nil then .... 使用frmCom前检查frmCom是你应该做的事情#### 在DLL中有许多Form,这些Form之间会相互引用的,而这些Form的实例就是全局变量@@@@ 全局变量只是一种方便的方式,还有其他方式,例如把全部form实例放到一个record中,
          而这个record可以为全局变量,也可以作为主界面实例的一个public变量,
          这完全由你控制