如何在COM接口中返回一个窗体?(100)

  • 主题发起人 zhuchengchuan
  • 开始时间
Z

zhuchengchuan

Unregistered / Unconfirmed
GUEST, unregistred user!
在多层开发中,想将客户端的子窗体全部封装到一个COM中,请问如何将这些封装的窗体返回给客户端?
 
给分!以下例子返回com中的TNdi类com:dll的pas:type TNdi = class //TForm类我没试过,自己试 myString: PChar;
procedure LoadForm;
//也可以在这里创建Form end;
function GetNdiClass: TNdi;
stdcall;
export;dll的dpr:exports GetNdiClass;使用(客户端):type TNdi = class myString: PChar;
procedure LoadForm;
end;
function GetNdiClass: TNdi;
stdcall;
external NdiDll;...........var Ndi: TNdi;
begin
Ndi := GetNdiClass;
Ndi.LoadForm;
end;
 
漏了点:dll的pas的GetNdiClass函数的实现:function GetNdiClass: TNdi;
begin
Result := TNdi.Create;
end;
 
返回Void*就是Delphi的Pointer.自己转换成Form.其实标准做法是为窗体绑定接口.返回接口.不过要是有N多窗体类窗体类有N多方法还是很烦的.这就是COM的不足之处.
 
多人接受答案了。
 
顶部