大家好,我在DLL中封装了一个frame,如果只有按纽等控件可以正确执行,但在放置了一个pagecontrol后,出现两个问题, 一个是pagecontrol不能切换,切换后page页不动, 第二个是如果在pagecontrol的tab上点击两次就提示 "control has no parent " 但如果只点击一次就没有错误提示,请帮助, 最好有源码
你看看你是不是带包运行的呀这种莫名的问题大部分可以通过这个解决,就是程序大小会很臃肿,build with packages: vcl,rtl。exe和dll都这样。原因是如果不带包的话,vcl是两个,就是比如说exe的TObject和dll的TObject不是一个东西……两个独立的框架运行,交互的时候就问题。
非正常方法: 在Forms单元中的下面这个方法的后面两句注释掉 function ValidParentForm(Control: TControl): TCustomForm; begin Result := GetParentForm(Control); //if Result = nil then // raise EInvalidOperation.CreateFmt(SParentRequired, [Control.Name]); end;正常方法: 带包编译并发布,带包编译可以减小程序的总体大小(但文件数会增加)
你代码指定parent试试看。
在Forms单元中的下面这个方法的后面两句注释掉
function ValidParentForm(Control: TControl): TCustomForm;
begin
Result := GetParentForm(Control);
//if Result = nil then
// raise EInvalidOperation.CreateFmt(SParentRequired, [Control.Name]);
end;正常方法:
带包编译并发布,带包编译可以减小程序的总体大小(但文件数会增加)