1、子窗口的创建顺序是否决定了子窗口的序号?2、如何根据子窗口的名字或标题去取得该子窗口的序号3、一个子窗口如何判断自己是当前激活的子窗口(此时主窗口可能非激活,即焦点不在本程序)4、主窗口中有一按钮,所有子窗口都含有元件EDIT1,如何让点击按钮时操作当前活动的子窗口中的EDIT1(子窗口数量不定,程序运行过程中随时可能增减)5、在程序中写有一个主窗口mainform和两个子窗口CForm和childform1,如何让程序运行时创建多个和子窗口childform1一模一样的子窗口(子窗口数量不定,不要叫我在程序中先写上一堆一模一样的子窗口备用)6、子窗口CForm中有一按钮,如何让点击该按钮时操作其它子窗口(子窗口数量、创建次序不一,窗口名称不同,都含有元件EDIT)中的一个(编程时未知是哪一个)的EDIT元件。谢谢,不知哪位高手能帮忙
2、for i:= 0 to MDIChildCount -1 do
if self.MDIChildren[i].Caption ='你的标题' then do……
3、for i:= 0 to MDIChildCount -1 do
if ActiveMDIChild = MDIChildren[i] then
begin
showmessage(inttostr(i));
break;
end;
4、TYourFormClass(ActiveMDIChild).edit1.text:= 'modify';
5、假设是TYourFormClass类的对象
procedure TForm1.Button1Click(Sender: TObject);
var f:TYourFormClass;
begin
f:= TYourFormClass.create(application);
f.show;
end;
6、同上遍历即可(可以使用消息)
eg:
if activeMDIChild <>nil then
activeMDIChild.Close;for i:= MDIChildCount -1 downto 0 do
MDIChildren[i].Edit1.text:='example';6.要在一个子窗口中操作其他子窗口中的控件,只能通过此子窗口的父(parent)窗口来调用.
2。每一个form都有一个name。根据name就可以判断form的状态:
如判断是否被创建:
if application.findform('form1')=nil then ...
3.在uses中引用其他form,即可对该窗体进行操作。
我曾试过把子窗口的名字作为变量,用下面的步骤:
在主窗口的一个事件中:
首先得到当前活动子窗口的名字
用子窗口的名字付给一个变量
最后用 变量.控件.属性 的写法去实现,但是编译不出来,因为这个变量不知道该怎样设置 xiaoyupzy(pzypzy的方法好像可行:for i:= MDIChildCount -1 downto 0 do
MDIChildren[i].Edit1.text:='example';假如子窗口同名的过程都叫gogo的话,是否可这样写ActiveMDIChild.gogo;
ActiveMDIChild.edit1.text:='ok';
ActiveMDIChild.edit1.text:='ok';错的
MDIChildren[i].Edit1.text:='example';可以完全实现你想要的目的,
formi:=Tmainform.create(self);
formi.free;
Child.Caption := Name;
if FileExists(Name) then Child.Memo1.Lines.LoadFromFile(Name);