我有一个程序。主窗体为了漂亮和使用没有用mdiform所有的功能窗体都封装在dll中有一个标准的接口run。在调用的时候由主窗体传递dll中form所需要的参数。并且每个功能窗体打开后动态的创建一个窗口采单,但是如何才能在关闭窗体时同时也将对应的动态采单删除,自定义消息不能解决窗体名称参数问题。
附代码:《如有问题和错误请指出》
dll中的代码:
procedure Run(AppHandle:THandle;CS_PAR:Tcommservice);stdcall
var Form:TFrmTest;
    pp:Pointer;
begin
  Application.Handle:=AppHandle;
  Form:=TFrmtest.Create(Application);
  Form.cs:=cs_par;
  Form.Show;
end;
exports
  run;
begin
end.
//
//窗体中的代码
procedure TFrmDeskTop.RunModal(Path: string);
type
  TRun=procedure(AppHandle:THandle;CS_PAR:Tcommservice);stdcall;
var
  Run:Trun;
  PrgH:Thandle;
begin
    PrgH:=Loadlibrary(pChar(Path));
    if PrgH<>0 then begin
      @Run:=GetProcAddress(PrgH,'Run');
      if @run<>nil then
      begin
        run(Application.Handle,DCS);
      end;
    end
    else
      FreeLibrary(PrgH);
end;