一个值得大家来考虑的DLL问题
来源:互联网 发布:淘宝旧书店 编辑:程序博客网 时间:2024/05/29 16:05
在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.
- 一个值得大家来考虑的DLL问题
- 一个值得大家来考虑的DLL问题
- 开放还是封闭?一个值得考虑的问题
- 这个Sql问题值得考虑!
- 值得大家看清的问题“藏独引起”
- 考虑一个关于需求特性的问题
- 开发一个app需要考虑的问题
- 设计一款DLL壳需要考虑的问题
- 大家来发现截取字符串的问题
- 一个值得注意的const问题
- 递归一个值得思考的问题
- DLL使用标准库的时候传值得问题
- 跟大家分享一个DLL导出类的使用
- Exchange Server 2010,值得考虑的升级
- 一个困扰了我大半天的问题,把我解决的方法发出来,给大家参考参考
- 一个0123456789的测试,大家来玩一把!
- 看到一个有意思的java题,请大家来回答
- 一个程序员大家都关心的问题.
- UML类图关系全面剖析
- 入门学习(4)
- 插件管理框架 for Delphi(二)
- c#连接MySql数据库的两种方法
- 数据的导出和导入工具:mysqldump
- 一个值得大家来考虑的DLL问题
- 在DHTML中响应ActiveX控件的事件
- GMGuard网页防篡改保护系统
- 数据导入与导出
- struts验证框架开发详解
- 在Delphi7中调试COM+
- 数据导入与导出之二
- Kmd--10注册表
- 在Delphi中如何维护COM+的状态信息