N
nlight_yl
Unregistered / Unconfirmed
GUEST, unregistred user!
用delphi写dll文件(封装窗体资源)
因为使用bpl,要传参数的时候要在主程序封装bpl的接口文件文件 无法实现主程序的不重编译
因为有些控件需要父句柄导致程序异常
在borland delphi 中的forms文件里有这样一个函数
function GetParentForm(Control: TControl): TCustomForm;
begin
while Control.Parent <> nil do Control := Control.Parent;
if Control is TCustomForm then
Result := TCustomForm(Control) else
Result := nil;
end;
函数会追溯到主程序的框架 判断最后的对象是否为TCustomForm 如果在主函数中调用该函数可以得到正确的结果
在dll里进行追溯的时候会发现 主程序的框架变成了
TwinControl类型 不符合上面的要求结果报出异常 不知道这个问题大家有没有遇到过 有什么解决的办法没有 谢谢了!
对了GetParentForm这个函数原先的比较条件是:
if Control is TCustomForm then
如果将范围扩大到TControl 则可以通过 但是这样要修改FORMS文件 而且释放资源的时候会出现内存操作异常
因为使用bpl,要传参数的时候要在主程序封装bpl的接口文件文件 无法实现主程序的不重编译
因为有些控件需要父句柄导致程序异常
在borland delphi 中的forms文件里有这样一个函数
function GetParentForm(Control: TControl): TCustomForm;
begin
while Control.Parent <> nil do Control := Control.Parent;
if Control is TCustomForm then
Result := TCustomForm(Control) else
Result := nil;
end;
函数会追溯到主程序的框架 判断最后的对象是否为TCustomForm 如果在主函数中调用该函数可以得到正确的结果
在dll里进行追溯的时候会发现 主程序的框架变成了
TwinControl类型 不符合上面的要求结果报出异常 不知道这个问题大家有没有遇到过 有什么解决的办法没有 谢谢了!
对了GetParentForm这个函数原先的比较条件是:
if Control is TCustomForm then
如果将范围扩大到TControl 则可以通过 但是这样要修改FORMS文件 而且释放资源的时候会出现内存操作异常