当前位置:首页 > 网络编程 > 软件语言 > DELPHI > bpl 使用之我见 作者:陈晓兵 lead001@126.com, lead@people.com.cn

bpl 使用之我见 作者:陈晓兵 lead001@126.com, lead@people.com.cn

点击次数:70 次 发布日期:2008-11-09 08:36:46 作者:源代码网
源代码网推荐
广告载入中

bpl 使用之我见

作者:陈晓兵 lead001@126.com, lead@people.com.cn

源代码网整理以下写在前面
在此不再赘述bpl与dll的比较,只介绍bpl的动态调用。如需转载敬请保留原版作者信息,
及实现部分的完整性,
开始---------------------------------------->
实现过程
<第一部分 接口单元>
创建一个接口单元
{$WEAKPACKAGEUNIT}
unit uInterface;

源代码网整理以下 interface
uses
Classes, Forms;
type
TBaseClss = class(TComponent)
function CreateForm:TForm; virtual; stdcall;abstract;
...
end;

源代码网整理以下 implementation

软件开发网 www.mscto.com

源代码网整理以下 { TBaseClss } 软件开发网 www.mscto.com

源代码网整理以下
end.

源代码网整理以下
<第二部分 调用的主程序>
选项设置
Project -> Options -> Packages : Runtime Packages
将Build with Runtime Packages复选框选中;

源代码网整理以下 引用uInterface单元

源代码网整理以下 调用过程
function LoadPacket(Fbpl, FClass: String): Boolean;
var
FForm : TForm;
FPersistentClass: TPersistentClass;
FBaseClss : TBaseClss;
H: HMODULE;
begin
try
try
H := 0;
H := LoadPackage(Fbpl);
FPersistentClass := FindClass(FClass);
if FPersistentClass <> nil then
begin
FBaseClss :=
TBaseClss(TComponentClass(FPersistentClass).Create(Application));
FForm := nil;
FForm := FBaseClss.CreateForm;
FBaseClss.Free;
FBaseClss := nil;
FPersistentClass := nil;
if Assigned(FForm) then


begin
FForm.ShowModal;
FreeAndNil(FForm);
end;
end;
except
Application.MessageBox("此功能未安装", "提示", MB_OK
MB_ICONINFORMATION);
end;
finally
if H <> 0 then
begin
UnloadPackage(H);
H := 0;
end;
end;
end;

源代码网整理以下 <第三部分 创建bpl包>
创建包 软件开发网 www.mscto.com

源代码网整理以下 引用uInterface单元

源代码网整理以下 创建接口类,实现TBaseClss
TTestClass = class(TBaseClss)
function CreateForm:TForm; override;
...
end;

源代码网整理以下 function TTestClass.CreateForm: TForm;
var
Form2: TForm2;
begin
Form2 := TForm2.Create(Application);
if Assigned(Form2) then
Result := Form2
else
Result := nil;
end;

源代码网整理以下
注册类
initialization
RegisterClass(TTestClass);
UnRegisterClass(TBaseClss);
反注册类
finalization
UnRegisterClass(TTestClass);
----------------------------------------结束>



源代码网推荐

源代码网供稿.
网友评论 (0)
会员中心
网络编程
本站推荐
网络编程之精华