- [图文] 如何将网页所有元素保存在一个文件中
- AIX:一个老牌Unix系统的荣耀和叹息
- 多系统共用一个瑞星杀毒软件
- 中国将迎来一个新的安全PC时代
- [组图] 对一个大型网络硬盘营业站点的测试
- Sentinel:一个小巧的anti-sniffer工具
- 间谍软件: 下一个网络杀手
- 一个Linux病毒原型分析
- 我国出现一个新型蠕虫Worm_Mocbot.A
- 一个很有实用价值的QoS策略配置实例
- Wi-Fi之后下一个802.11n标准值得期待
- 中国第一个企业网格的建立
- 一个简单的打字练习程序
- 怎样在一个程序后面运行另一个程
- 一个判断定文件是否为文本文件的函数
- 一个经典的符合web标准的flash插入法
- 大家有没有碰到过unix上,一个目录文件太多,无法删..
- 一个程序自动刷新页面的例子(例如搜新浪小人)
- 一个支持HTTP续传下载的PERL程序
- 关于odbc的一个文挡说明,奉献给大家
在MDI窗体类型的编程中,主窗体(fsMDIForm)怎样调用子窗体(fsMDIChild,此子窗体为DLL)。
以下是我的原代码:
==========================================================================================
DPR 单元代码
program Mdiform;
uses
Forms,
UMdiform in ´UMdiform.pas´ {Mainform},
UDM in ´UDM.pas´ {GlobalDM: TDataModule},
UFun in ´UFun.pas´;
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TMainform, Mainform);
Application.Run;
end.
===============================================================================================
主窗体代码:
unit UMdiform;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Udm,StdCtrls;
type
TMainform = class(TForm)
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
MyHandle:HWND;
{ Public declarations }
end;
var
Mainform: TMainform;
type
T_ShowTestMng=function (var adm:TMainform) : Boolean; StdCall;
implementation
{$R *.dfm}
procedure TMainform.Button1Click(Sender: TObject);
var
Lib_ :THandle;
_ShowTestMng :T_ShowTestMng;
begin
Lib_:=LoadLibrary(pchar(´MdiChild.dll´));
try
@_ShowTestMng:=GetProcAddress(Lib_,´_ShowTestMng´);
if not(@_ShowTestMng=nil) then
_ShowTestMng(Mainform);
finally
FreeLibrary(Lib_);
end;
end;
procedure TMainform.FormCreate(Sender: TObject);
begin
MyHandle:=Application.Handle;
end;
end.
==============================================================================================
子窗体DLL代码:
library MdiChild;
uses
ShareMem,
UMdiform, //此单元为父窗体单元,在顶目设置中我已经设置了搜索此单元在路径。
Forms,
SysUtils,
Classes,
UChild in ´UChild.pas´ {FrmChild};//FrmChild子窗体的FormStyle属性为FsMDIChild
{$R *.res}
function _ShowTestMng(var adm:TMainform) : Boolean; StdCall;
begin
result:=true;
Application.Handle:=adm.MyHandle;
Application.CreateForm(TFrmChild,FrmChild); //程序就出错在此:出错原因是:Cannot create form. No MDI Forms are currently active.
FrmChild.Show;
end;
exports
_ShowTestMng;
end.
[编辑:百家电脑学院] [返回学院首页] [返回上一页] []
·上一篇:简易对象垃圾回收框架 for Delphi · 下一篇:Command模式

