如何动态改变子窗口的CAPTION,改变子窗口上Label的Caption?(100分)

  • 主题发起人 主题发起人 redsky.l
  • 开始时间 开始时间
R

redsky.l

Unregistered / Unconfirmed
GUEST, unregistred user!
做了一个MDI窗体,其中一个子窗体只能创建一个,如果已创建那么就激活它,带到最前面。

现在想在主窗体口放一个按钮,改变子窗口中的Caption 和其上的一下Label的Caption,该
如何做??
 
1)Form1.ActiveMDIChild.Caption := 'Caption Change';

2)TLabel(Form1.ActiveMDIChild.FindComponent('Label1')).Caption := 'Who am i?';

没问题,用吧!
 
管一点,但在我的这个代码下无用:

procedure TForm1.OpenForm(FormClass: TFormClass; var fm; AOwner:TComponent);
var
i: integer;
Child:TForm;
begin
for i := 0 to Screen.FormCount -1 do begin
if Screen.Forms.ClassType=FormClass then begin
Child:=Screen.Forms;
if Child.WindowState=wsMinimized then
ShowWindow(Child.handle,SW_SHOWNORMAL)
else
ShowWindow(Child.handle,SW_SHOWNA);
if (not Child.Visible) then Child.Visible:=True;
Child.BringToFront;
Child.Setfocus;
TForm(fm):=Child;
exit;
end;
end;
Child:=TForm(FormClass.NewInstance);
TForm(fm):=Child;
Child.Create(AOwner);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
OpenForm(TForm2,self,self);
end;

当有其他子窗口时管用,但只有Form1时就不行了,没任何变化!WHY???

 
动态改变子窗口的CAPTION已解决,

TO:郭玉梁
2)TLabel(Form1.ActiveMDIChild.FindComponent('Label1')).Caption := 'Who am i?';
能说更清楚一点吗?
 
Form1.ActiveMDIChild当前活动窗体!
FindComponent查找Name为Label1的Label控件,返回控件句柄TObject,
TLabel()将返回的句柄转换为Label控件,
TLabel().Caption := 'Document';付值!

把你的代码拿来,让我一试!
 
主要代码上面已贴!
关键问题是:调用OpenForm(TForm2,self,self) 时如果Form已经建立并且是ActiveMDIChild
时,好象什么都不做!:(
 
谢谢了,完全解决!!
 
后退
顶部