我写了一个DLL窗体(名叫:MyDllForm),想在MyDllForm窗体内用一个按钮(Btn_Exit)退出MyDllForm窗体,回到主窗体中.但是总是出错,代码如下:请高手帮忙?
function show_MyDllForm(hand:thandle;cap:string):boolean;stdcall;
var
MyDllForm:TMyDllForm;
begin
result:=false;
application:=hand;
MyDllForm:=TMyDllForm.Create(hand);
try
MyDllForm.Caption:=cap;
MyDllForm.ShowModal;
result:=true;
finally
MyDllForm.Free;
end;
procedure TMyDllForm.btn_ExitClick(Sender: TObject);
var
h:thandle;
begin
h:=findwindow('tMyDllForm','我的DLL窗体');
if hand>0 then
tMyDllForm(h).Free;
end;
点击btn_exit时总是出错,请各位高手帮忙??请说详细些!
function show_MyDllForm(hand:thandle;cap:string):boolean;stdcall;
var
MyDllForm:TMyDllForm;
begin
result:=false;
application:=hand;
MyDllForm:=TMyDllForm.Create(hand);
try
MyDllForm.Caption:=cap;
MyDllForm.ShowModal;
result:=true;
finally
MyDllForm.Free;
end;
procedure TMyDllForm.btn_ExitClick(Sender: TObject);
var
h:thandle;
begin
h:=findwindow('tMyDllForm','我的DLL窗体');
if hand>0 then
tMyDllForm(h).Free;
end;
点击btn_exit时总是出错,请各位高手帮忙??请说详细些!
procedure TMyDllForm.btn_ExitClick(Sender: TObject);
var
h:thandle;
begin
h:=findwindow('tMyDllForm','我的DLL窗体');
if hand>0 then
tMyDllForm(h).Free; // xiammy: h是THandle,是一个Windows的窗体资源ID,并不是次窗体的对象事例指针。所以不能强制转换,并调用Free方法。
end;
h:thandle;
begin
h:=findwindow('tMyDllForm','我的DLL窗体');
if h>0 then
SendMessage(h,WM_CLOSE,0,0);end;
begin
action:=caFree;
end;