关于FORM和DLL的疑难问题 |
尚未結案
|
shenhj
一般會員 ![]() ![]() 發表:5 回覆:2 積分:1 註冊:2002-11-13 發送簡訊給我 |
一主叫程序里有一个PANEL,调用DLL里面的FORM后,要求被调用的FORM在主叫程序的PANEL里,不能用MDIFORM和CHILDFORM
-----DLL程序----
.....
function OpenForm(H:THandle):Tform;stdcall;
begin
result:=nil;
application.Handle:=H;
dllform_Form:=Tdllform_Form.Create(application);
dllform_Form.Show;
result:=dllform_form;
end;
exports OpenForm;
.....
-----主叫程序-----
.....
procedure TForm1.BitBtn1Click(Sender: TObject);
var aform:tform;
begin
aform:=openform(application.Handle);
aform.Parent:=panel1;
aform.Top:=0;
aform.Left:=0;
aform.Show;
showmessage(aform.Name);
end;
.....
但是不能显示被调用FORM,且关闭主叫程序时显示错误信息.如果去掉aform.Parent:=panel1;则在主叫程序窗口外能够显示被调用FORM.
试了几天时间不能解决,请求高手帮助
|
pgdennis
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:41 回覆:526 積分:443 註冊:2002-05-23 發送簡訊給我 |
引言: 一主叫程序里有一个PANEL,调用DLL里面的FORM后,要求被调用的FORM在主叫程序的PANEL里,不能用MDIFORM和CHILDFORM -----DLL程序---- ..... function OpenForm(H:THandle):Tform;stdcall; begin result:=nil; application.Handle:=H; dllform_Form:=Tdllform_Form.Create(application); dllform_Form.Show; result:=dllform_form; end; exports OpenForm; ..... -----主叫程序----- ..... procedure TForm1.BitBtn1Click(Sender: TObject); var aform:tform; begin aform:=openform(application.Handle); aform.Parent:=panel1; aform.Top:=0; aform.Left:=0; aform.Show; showmessage(aform.Name); end; ..... 但是不能显示被调用FORM,且关闭主叫程序时显示错误信息.如果去掉aform.Parent:=panel1;则在主叫程序窗口外能够显示被调用FORM. 试了几天时间不能解决,请求高手帮助我試的結果也是不行.
------
星期一,二...無窮迴圈@@ |
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
shenhj
一般會員 ![]() ![]() 發表:5 回覆:2 積分:1 註冊:2002-11-13 發送簡訊給我 |
|
Justmade
版主 ![]() ![]() ![]() ![]() ![]() ![]() 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
shenhj
一般會員 ![]() ![]() 發表:5 回覆:2 積分:1 註冊:2002-11-13 發送簡訊給我 |
|
mustapha.wang
資深會員 ![]() ![]() ![]() ![]() ![]() 發表:89 回覆:409 積分:274 註冊:2002-03-13 發送簡訊給我 |
引言: 谢谢楼上的,我已自行解决,为什么在PANEL里不显示出来,只要加上 PANEL.UPDATECONTROLSTATE即可显示,但另有一个问题,如果被调用的 窗口内包含DBGRID,则DBGRID不能获得焦点,不能修改删除或调整COLUMN宽度, 调试时出现错误信息为DBGRID NO PARENT WINDOW,请教如何解决焦点可以用windows.SetParent(aForm.Handle,Panel1.Handle); 取代Parent:=...解决
------
江上何人初见月,江月何年初照人 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |