我想点击按钮,然后弹出DLL中的窗口,这些窗口可以同时工作。DLL中,我这样编写:procedure CreateForm(AHandle:THandle);
begin
  Application.Handle:=AHandle;      //传递句柄
  PForm:=TForm1.Create(Application); //创建Application
  PForm.Show;                       //显示窗口
  PForm.Free;                       //释放
end;主程序中,把Application的Handle赋值给AHandle,然后调用。
但是,点击按钮的时候,窗口总是一闪而过,不知道为什么。如果我把上面中的代码改写成:
1.TForm1.Create(nil)
2.PFrom.Showmodal
这样就可以显示了,两个条件缺一不可。--->不过,这样不符合我同时工作的要求。另外,我是不是需要在主程序中,在关闭的时候,把那些窗口给DestroyWindow,把窗口销毁掉?否则会有内存泄露?

解决方案 »

  1.   

      PForm.Show;                       //显示窗口
      PForm.Free;  你创建了窗体,又释放了窗体~~改为这样
      try 
       Application.Handle:=AHandle;      //传递句柄
        PForm:=TForm1.Create(Application); //创建Application
        PForm.ShowModal;
      finally 
        pform.free;
      end;
      

  2.   

    delphi盒子站点上有DEMOwww.2ccc.com
      

  3.   


    恩,换成ShowModal后就必须等你自己关闭窗口后才能free了,不会直接free
      

  4.   


    procedure CreateForm(AHandle:THandle); 
    begin  
      Application.Handle:=AHandle; //传递句柄 
      PForm:=TForm1.Create(Application); //创建Application 
      PForm.Show; //显示窗口 
      //PForm.Free; //释放   这个放在PFormOnClose里面去 就是在OnClose里面Action:=Cafree;
    end;
      

  5.   

    但是ShowModal只能用一个窗体啊   我想同时操作多个窗体 怎么办