Control 'PageControl' has no parent window

ysx192 2008-07-02 09:48:54
dll中的form Dock到主窗体 TabSheet中的ScrollBox中后,
DLL中form 上的pagecontrol 报错:Control 'PageControl' has no parent window
form1.Dock(TScrollBox(psParent),form1.BoundsRect);
如果不加这句就不会,但是这句是一定要的.
怎么解决.
...全文
442 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
wei_wu49036233 2011-06-03
  • 打赏
  • 举报
回复
顶下··拿分
kye_jufei 2011-06-01
  • 打赏
  • 举报
回复
未指定父類。。。
wmz110 2011-06-01
  • 打赏
  • 举报
回复
exe中可能没问题,但是dll中就是出现问题
wmz110 2011-06-01
  • 打赏
  • 举报
回复
就是没指定父类导致
dropme 2011-05-31
  • 打赏
  • 举报
回复
路过,帮顶,蹭分~
daniellee1979 2011-05-31
  • 打赏
  • 举报
回复
前几天也碰了这个问题,是因为dll停靠到主form上,在 dll里有调用forms里的这个方法
function GetParentForm(Control: TControl): TCustomForm;
begin
while Control.Parent <> nil do Control := Control.Parent;

//问题出在这里,因为在dll里不认的主调form的类是否是从Tform继承,
if Control is TCustomForm then
Result := TCustomForm(Control)
else
Result := nil;
end;

作了如下修改

function GetParentForm(Control: TControl): TCustomForm;
var
cName: String;
begin
while Control.Parent <> nil do Control := Control.Parent;


if Control is TCustomForm then
Result := TCustomForm(Control)
else
begin
if upperCase(Control.ClassName) = '这里是主调form的类名' then
Result := TForm(Control)
else
Result := nil;
end;
end;
lake_cx 2008-07-04
  • 打赏
  • 举报
回复
原因在这
function GetParentForm(Control: TControl): TCustomForm;
begin
while Control.Parent <> nil do Control := Control.Parent;
//这句is判断通不过,因为Control虽然是TCustomForm,但是它是exe中的,而TCustomForm类型信息是dll中的
if Control is TCustomForm then
Result := TCustomForm(Control) else
Result := nil;
end;

function ValidParentForm(Control: TControl): TCustomForm;
begin
Result := GetParentForm(Control);
if Result = nil then
raise EInvalidOperation.CreateFmt(SParentRequired, [Control.Name]);
end;
luxuewei5214 2008-07-04
  • 打赏
  • 举报
回复
给他重新指定父窗口
ysx192 2008-07-02
  • 打赏
  • 举报
回复
Application 已经传入了
支持中文哦 2008-07-02
  • 打赏
  • 举报
回复
不知道是否把application.handle传入了这个dll初始化的问题

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧