如何控制子窗体中组件caption的显示?

边城在线 2003-10-15 04:45:47
我在formshow中欲控制label组件caption的显示内容,程序却总是报错,那位兄弟遇见过,可否告知一二,多谢了
...全文
150 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Delphi1985 2003-10-15
  • 打赏
  • 举报
回复
这种情况我遇到过
它是因为:如果你在主窗体中直接调用子窗体的部件时,会出错
因为,子窗体中的部件是局部的,不能被外部直接访问
你应在子窗体中编写个函数或过程,再在主程序中调用
一定行的
hiflower 2003-10-15
  • 打赏
  • 举报
回复
没有问题啊
procedure TMDIForm1.FormShow(Sender:TObject);
begin
Label1.Caption:='mdi';
ChildForm2.Lable1.Caption:='mdi';
end;

//////////////
procedure TChildForm2.FormShow(Sender:TObject);
begin
MDIForm1.Label1.Caption:='child';
Lable1.Caption:='child';
end;


是不是你的 ChildForm 没有设置成自动创建,那么要手动创建。
边城在线 2003-10-15
  • 打赏
  • 举报
回复
我去掉了,label的前缀就行了,呵呵!
边城在线 2003-10-15
  • 打赏
  • 举报
回复
我的窗体类型是子窗体,我也是如上面各位那样做的 ,但是不行啊!!
dickeybird888 2003-10-15
  • 打赏
  • 举报
回复
我给你个例子吧,我这里是设置子窗体的caption,你修改一下就可以实现你的目的了!
///////////////////////////////////////////////////////////////////////////
// 功能: 运行非模态窗体 //
// 入口参数:AForm: 窗体类实例 //
// AFormClass:窗体类 //
// Panert:容器 //
// AFormCaption:窗体标题 //
// 返回值: 成功 True ;失败 False //
///////////////////////////////////////////////////////////////////////////
function RunChildShow(AForm:TForm;AFormClass: TFormClass;Panert:TTrPanel;AFormCaption:String):Boolean;
var
i:Integer;
begin
Result:=false;
for i:=0 to Application.ComponentCount-1 do
if (Application.Components[i] is AFormClass ) then
begin
// Application.MessageBox(Pchar((PanertForm.Components[i] as AFormClass).Caption),'',0);
if (Application.Components[i] as AFormClass).Caption = AFormCaption then
begin
ShowWindow((Application.Components[i] as AFormClass).Handle,SW_RESTORE);
exit;
end;
end;

if not Assigned(AForm) then
begin
AForm:=AFormClass.Create(Application);
try
AForm.Parent:=Panert;
AForm.Top:=0;
AForm.Left:=0;
AForm.Width:=Panert.Width-5;
AForm.Height:=Panert.Height-5;
AForm.Caption:=AFormCaption;
AForm.Show;
finally
end;
end ;
Result:=true;
end;
huojiehai 2003-10-15
  • 打赏
  • 举报
回复
procedure TForm1.FormShow(Sender: TObject);
//var
// label1: Tlabel;//是不是在这又声明了,去掉
begin
label1.Caption:='dddddd';
end;
WuLoveXue 2003-10-15
  • 打赏
  • 举报
回复
show事件中是不会出错的!
gdwyh 2003-10-15
  • 打赏
  • 举报
回复
procedure TForm1.FormShow(Sender: TObject);
begin
label1.Caption:='6544545';
end;
我试过可以的

5,386

社区成员

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

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