文件名称:notblack_DllClass
介绍说明--下载内容均来自于网络,请自行研究使用
嘿嘿,大侠看到不要见笑呀...
大家都知道使用DLL的好处.于是我就想把FORM封装到DLL里面去.
到网上找,发现是MDI和模式窗体的,非模式的也有很多问题.便想自己解决这个问题.
原来是用DLL创建一个对象返回,但发现有很多的问题.
想了半天就去寻根问柳吧.
找到了类.
我就想把类封装进DLL,到时简单的返回一个类,然后在主程序里操作不就简单了?
找了半天发现了TFormClass,于是试了试从DLL导出来,像一般的程序一样创建窗体发现成功.
接着我又想看看其他的类是不是也能这样,就拿Tfr a me来实验.
function GetDllfr a meClass():Tfr a me stdcall
第一次是这样声明的,失败.奇怪?!
试了好多次都不行,就想到了TFormClass(Ctrl+左键),进去看看,发现是这样声明的.
TFormClass = class of TForm
哎呀,恍然大悟!!
class(Tfr a me) 是声明一个类, 这个类继承了Tfr a me类 f: Tfr a me 是一个对象
class of Tfr a me 声明的是类类型, f:Tfr a meClass 是一个类.
function GetDllfr a meClass():Tfr a me
返回就不是类而是对象了,照TFormClass修改后Tfr a meClass = class of Tfr a me
运行...成功,
大家都知道使用DLL的好处.于是我就想把FORM封装到DLL里面去.
到网上找,发现是MDI和模式窗体的,非模式的也有很多问题.便想自己解决这个问题.
原来是用DLL创建一个对象返回,但发现有很多的问题.
想了半天就去寻根问柳吧.
找到了类.
我就想把类封装进DLL,到时简单的返回一个类,然后在主程序里操作不就简单了?
找了半天发现了TFormClass,于是试了试从DLL导出来,像一般的程序一样创建窗体发现成功.
接着我又想看看其他的类是不是也能这样,就拿Tfr a me来实验.
function GetDllfr a meClass():Tfr a me stdcall
第一次是这样声明的,失败.奇怪?!
试了好多次都不行,就想到了TFormClass(Ctrl+左键),进去看看,发现是这样声明的.
TFormClass = class of TForm
哎呀,恍然大悟!!
class(Tfr a me) 是声明一个类, 这个类继承了Tfr a me类 f: Tfr a me 是一个对象
class of Tfr a me 声明的是类类型, f:Tfr a meClass 是一个类.
function GetDllfr a meClass():Tfr a me
返回就不是类而是对象了,照TFormClass修改后Tfr a meClass = class of Tfr a me
运行...成功,
(系统自动生成,下载前可以参看下载内容)
下载文件列表
压缩包 : 111186749notblack_dllclass.rar 列表 Dll\Dll.dof Dll\Dll.dpr Dll\Dll.res Dll\Unit1.dfm Dll\Unit1.pas Dll\Unit2.dfm Dll\Unit2.pas Dll Main\Main.dof Main\Main.dpr Main\Main.res Main\Unit1.dfm Main\Unit1.pas Main Bin\Dll.dll Bin\Main.exe Bin ReadMe.txt notblack_DllClass.gif 2ccc.com.nfo Dll\2ccc.com.nfo