永发信息网

delphi中的mdichildren疑问?各位大大帮帮

答案:2  悬赏:50  手机版
解决时间 2021-02-26 09:01
  • 提问者网友:凉末
  • 2021-02-26 02:14
delphi7中把
form1定义为mdiform
form2定义为mdichild

然后form1里新建的mdichild窗口为form2类型的

var child:tform2;
child:=tform2.Create(self);
child.show;

关键问题是form2里定义了一个memo1的组件还有一个savetext的procedure
但是在form1.mdichildren[0]中却找不到,mdichildren是按照form2来构造的什么访问不到里面的memo1还有过程呢???
最佳答案
  • 五星知识达人网友:思契十里
  • 2021-02-26 02:48
mdichildren的返回类型是TForm当然没有了。
把值强制转成form2的类型就行了。
全部回答
  • 1楼网友:时间的尘埃
  • 2021-02-26 03:33
////先定义一个函数 private function findform(caption: string): bool; { private declarations } public { public declarations } end; var main: tmain; implementation {$r *.dfm} //-----------通过用户定义的函数,判断窗体是否已存在-------------------- function tmain.findform(caption: string): bool; var i:integer; begin //result:=false;//防止出现函数返回值没有定义的警告 result:=true;//防止出现函数返回值没有定义的警告 for i:=0 to main.mdichildcount do begin // 通过对窗体标题判断窗体是否存在 if main.mdichildren[i].caption=caption then begin //如果窗体已存在,则恢复窗体,并返回true sendmessage(mdichildren[i].handle, wm_syscommand, sc_restore, 0); mdichildren[i].enabled:=true; mdichildren[i].show; mdichildren[i].setfocus; result:=true; break; end else //如窗体不存在,则返回false,程序将创建窗体 result:=false; end end; ////然后打开mdi子窗体,我合理是caozuorenyuan //-------------打开操作人员设置窗体---------- procedure tmain.n2click(sender: tobject); var newform:tcaozuorenyuan; begin if findform('操作人员设置')=false then begin newform:=tcaozuorenyuan.create(application); newform.caption:='操作人员设置'; end; end;
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯