大家帮忙看下:
procedure Tfjzgl.normaltoimportplanExecute(Sender: TObject);
var
newform:Tfnormaltoimportplan;
i,flag:integer;
begin
flag:=0;
for i:=0 to fjzgl.MDIChildCount do
begin
// 通过对窗体标题判断窗体是否存在
if fjzgl.MDIChildren[i].Caption='普通件转重点件生产计划' then
begin
//如果窗体已存在,则恢复窗体
SendMessage(mdichildren[i].Handle, WM_SYSCOMMAND, SC_restore, 0);
mdichildren[i].show;
mdichildren[i].SetFocus;
mdichildren[i].Enabled:=true;
//标识窗体已存在
flag:=1;
//退出循环
break;
end;
end;
//若窗体不存在,则创建窗体
if flag=0 then
begin
newform:=Tfnormaltoimportplan.Create(application);
newform.Caption:='普通件转重点件生产计划';
end;
if (sender = N20) then
begin
fjzgl.n20.Checked :=true;
fjzgl.n21.Checked :=false;
fjzgl.n22.Checked :=false;
fjzgl.n23.Checked :=false;
fnormaltoimportplan.label22.Caption :=' 铸造';
fnormaltoimportplan.ADOTable1.TableName :='normaltoimportplan-zhuz';
end;
if (sender=N21) then
begin
fjzgl.n21.Checked :=true;
fjzgl.n20.Checked :=false;
fjzgl.n22.Checked :=false;
fjzgl.n23.Checked :=false;
fnormaltoimportplan.Label22.Caption:=' 铆焊';
fnormaltoimportplan.ADOTable1.TableName :='normaltoimportplan-maoh';
end;
if (sender=N22) then
begin
fjzgl.n22.Checked :=true;
fjzgl.n21.Checked :=false;
fjzgl.n20.Checked :=false;
fjzgl.n23.Checked :=false;
fnormaltoimportplan.Label22.Caption:='一金工';
fnormaltoimportplan.ADOTable1.TableName :='normaltoimportplan-yijg';
end;
if (sender=N23) then
begin
fjzgl.n23.Checked :=true;
fjzgl.n21.Checked :=false;
fjzgl.n22.Checked :=false;
fjzgl.n20.Checked :=false;
fnormaltoimportplan.Label22.Caption:='二金工';
fnormaltoimportplan.ADOTable1.TableName :='normaltoimportplan-erjg';
end;
end;
现在主要问题是:运行后在子窗体没有更改它的labe22的标题,而且明显感觉到只执行了判断子窗体的代码,应该是子窗体没有打开,但用了几种方法都打开子窗体都不行,包括设第三个nform来传递,但无法执行nform:=MDIchild[i].create(self)~~,消去红色的那几个代码,程序就执行的了,不过只是执行MDI主窗体的控件,无法执行MDI子窗体的控件.所以,MDI主窗体如何调用MDI子窗体的控件呢???