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还有过程呢???
delphi中的mdichildren疑问?各位大大帮帮
答案:2 悬赏:50 手机版
解决时间 2021-02-26 09:01
- 提问者网友:凉末
- 2021-02-26 02:14
最佳答案
- 五星知识达人网友:思契十里
- 2021-02-26 02:48
mdichildren的返回类型是TForm当然没有了。
把值强制转成form2的类型就行了。
把值强制转成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;
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯