主页
Top.Mail.Ru Yandeks.Metrika
论坛:“主要”;
当前存档:2002.04.01;
下载:[xml.tar.bz2];

向下

MDI和DLL的问题 找到类似的分支


alexts   (2002-03-20 15:21) [0]

大家好 有这样一个问题:
有一个MDI应用程序和DLL,其中描述了形式。
这些表格不会显示出来。 怎么办



Alx2   (2002-03-20 15:43) [1]

在论坛中搜索。 这个问题在两周内第四次出现。



Alx2   (2002-03-20 15:49) [2]

抱歉,此问题的链接已超出活动范围:(



alexts   (2002-03-20 16:07) [3]

好吧,至少给哪里读。



MAxiMum   (2002-03-20 16:08) [4]

您是否将DLL的Form函数设为外部函数?
类型,函数(...):TMDIForm;
并获取到表单的链接。



Alx2   (2002-03-20 16:19) [5]

简而言之,他们这样做:
在DLL中,我们传递应用程序和屏幕的上下文。 在那之后,它几乎可以工作了。 :)
在这里,他匆忙速写:

DLL:
用途 sharemem, Sysutils 班级 表格 “ aUnit1.pas”中的aUnit1 {MDIForm1}; //通常的形式是坐在那里 保存变量:TApplication; {$ R * .RES} 程序ClearMdiApp; stdcall; 开始 如果保存<> Nil,则 应用程序:=保存 结束 函数createMDIChild(应用程序:tApplication):Tform; stdcall; 开始 如果Save = Nil 然后保存:=应用程序; 应用程序:=应用程序; 结果:= TMDIform1.create(app); 结束 导出createMDIChild,ClearMdiApp; 开始 保存:=无; 结束。

这是主要模块:
类型 TForm1 =类(TForm) MainMenu1:TMainMenu; NewMDI1:TMenuItem; 过程NewMDI1Click(发送者:TObject); 过程FormDestroy(发送者:TObject); 私人的 {私人声明} 公开的 {公开声明} 结束 变种 Form1:TForm1; 函数createMDIChild(app:tapplication):tForm; stdcall; 外部“ mdi.dll”; 程序ClearMdiApp; stdcall; 外部“ mdi.dll”; 实作 {$ R * .DFM} 过程TForm1.NewMDI1Click(发件人:TObject); 开始 CreateMDIChild(Application).FormStyle:= fsMDIChild; 结束 过程TForm1.FormDestroy(发送者:TObject); 开始 ClearMdiApp; 结束 结束。



alexts   (2002-03-20 17:20) [6]

甚至不出来。 主窗口消失了,就是这样..我将按照以下方式进行操作:
等等
库spr; {$ R * .res} 用途 表格 Sysutils 类,DBTable, “ u_add_group.pas” {add_group}中的u_add_group, “ Dm_tov.pas”中的dm_tov {DM_Tovar:TDataModule}, “ main_tovar.pas” {f_sprtov}中的main_tovar, “ u_add_food.pas” {add_food}中的u_add_food, “ add_param.pas”中的add_param {f_hartov}; 函数spr_foods(App:TApplication; Scr:TScreen; DB:TDataBase):TForm; 开始 应用程序:=应用程序; 屏幕:= Scr; DM_Tovar:= TDM_Tovar.Create(app); DM_Tovar.Database1:= DB; f_sprtov:= Tf_sprtov.Create(App); 结果:= f_sprtov; 结束 出口商品 spr_foods; 开始 结束。

DLL调用
LAssort:=负载库(PChar(spr_menundll.AsString)); 如果LAssort <> 0然后 开始 @MyProc:= GetProcAddress(LAssort,PChar(spr_menunproc.AsString)); 如果@MyProc <>无 然后是MyProc(应用程序,屏幕,Intro.Database1) 其他ShowMessage(“



Alx2   (2002-03-20 17:24) [7]

以防万一:在dll使用和主程序模块的使用中,将sharemem放在第一位。



alexts   (2002-03-20 17:38) [8]

都一样,一样。 主要形式消失了,但是在此之前,我称之为??????????的形式闪烁了



Alx2   (2002-03-20 17:39) [9]

真奇怪 某个地方出现故障....
我有一个例子,我写的完全可行。 尝试尝试一下。



Страницы: 1 整个分支

论坛:“主要”;
当前存档:2002.04.01;
下载:[xml.tar.bz2];

楼上









内存:0.58 MB
时间:0.02 c
1-240
lipskiy
2002-03-20 20:32
2002.04.01
的TThread


1-186
阿列克西
2002-03-19 21:41
2002.04.01
组件


1-132
DenKop
2002-03-21 19:50
2002.04.01
加密


1-97
Fredericco
2002-03-21 12:45
2002.04.01
有谁知道下一件事是否可能:在dll中编写一个类然后使用它?


3-22
Dimonka
2002-03-06 10:39
2002.04.01
请求中出错!





南非荷兰语 阿尔巴尼亚人 阿拉伯语 亚美尼亚 阿塞拜疆 巴斯克 白俄罗斯 保加利亚语 加泰罗尼亚 简体中文 中国(繁体) 克罗地亚 捷克 丹麦语 荷兰人 英语 爱沙尼亚语 菲律宾人 芬兰 法文
加利亚西语 格鲁吉亚语 德语 希腊语 海地克里奥尔语 希伯来语 印地语 匈牙利 北日耳曼语 印度尼西亚人 爱尔兰语 意大利语 日本性玩偶 韩语 拉脱维亚 立陶宛 马其顿 马来语 马耳他语 挪威语
波斯语 波兰语 葡萄牙语 罗马尼亚 俄语 塞尔维亚 斯洛伐克 斯洛文尼亚 西班牙语 斯瓦希里 瑞典语 泰国人 土耳其 乌克兰 乌尔都语 越南人 威尔士语 意第绪语 孟加拉 波斯尼亚
宿务 世界语 古吉拉特语 豪萨语 苗族 伊博 爪哇 卡纳达语 高棉 老挝 拉丁语 毛利 马拉 蒙古人 尼泊尔 旁遮普 索马里 泰米尔人 泰卢固语 约鲁巴语
祖鲁
英文 Французский Немецкий Итальянский Португальский 俄文 Испанский