请问在父窗体FrameForm中,为什么会不认得FrameForm.ActiveMDIForm (50分)

  • 主题发起人 主题发起人 rocken2
  • 开始时间 开始时间
R

rocken2

Unregistered / Unconfirmed
GUEST, unregistred user!
我想在父窗体中放工具栏,调用子窗体菜单中的内容:
procedure TFrameForm.ToolButton1Click(Sender: TObject);
begin
(FrameForm.ActiveMDIForm as EditForm).new1click;
end;
可是编译时老是会说activeMdiForm未定义,这是为什么?
还有,我这样写(FrameForm.ActiveMDIForm as EditForm).new1click;
对吗?能成功调用子窗体中的菜单内容吗?
 
FrameForm.ActiveMDIForm as EditForm).new1click(self);
 
不是啊,在编译的时候,ActiveMDIForm就不认得了,程序好像把他当成未定义的变量了,
是不是我在USE里面少写了什么?
 
form1.ActiveMDIChild
注意是child
 
哦,用ActiveMDIChild我试过,用这个编译后会出现:Operator Not Applicable to THis
Operand Type的错误。
 
form1.ActiveMDIChild.new1click(self);
 
非常感谢ZW84611大大的再三回答,非常感谢!!!
虽然不知道为什么,我用大大说的FrameForm.ActiveMDIForm.new1click(self);
还是通不过编译,后来我翻了大大们以前的贴子,终于找到了方法:)
TEditForm(ActiveMDIChild).New1Click(Self);
这样就行了。
但现在还有一个问题就是:
比如说存储和打印工具栏,剪切等,当当前的所有子窗体都关闭了,但是这两个按钮还可以用
,所以一按程序就会报错了,请问这要怎么判断
 
在子窗体的close事件中另主窗体的按钮的enabled为false,在其Create事件中另按钮的enabled为true
 
哦,谢谢,这个我也有想过,但是因为是MDI窗体,会同时打开很多个子窗体,这样子在
关闭其中的一个子窗体后,按钮就会不可用了,其他的了窗体也就不能用了
 
举个例子:
Button1.enabled:= false;
for i:= 1 to Form1.MDIChildCount do
begin
if Form1.MDIChildren.Visible then Button1.enabled:= true;
end;
 
谢谢,上面不知为什么也不行,
不过,我跟据上面的提示用了
if Form1.MDICildCoutn=1 then
…….enabled:=false;
似乎可以了,就不知会不会有其他的毛病:)
谢谢!!!
 

Similar threads

回复
0
查看
815
不得闲
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部