求救! 关于菜单设置的问题!(100分)

  • 主题发起人 主题发起人 songmag
  • 开始时间 开始时间
S

songmag

Unregistered / Unconfirmed
GUEST, unregistred user!
如何在一个窗口中设置另一个窗口菜单中某项的enable属性?
如:在from1中设置form2菜单中name=n1的enable;
[注]其中n1是字符串型,因为在程序中菜单的名字是从数据库中查出。
所在form1中 form2.n1.enable:=true;是不行的。
我只知道在同一窗口中的用法:
a:='n1';
(FindComponent(a)) as TMenuItem).Enabled:=true;
但在不同窗口中怎么写?
请高手帮忙!
 
uses unit2;

with form2 do
begin
a:='n1';
(FindComponent(a)) as TMenuItem).Enabled:=true;
end;
 
(form2.FindComponent('n1')) as TMenuItem).Enabled:=true;
 
在Form1中 uses Form2单元 如 : Uses Unit2;

Form2.n1.enable ;= True;就可以了
 
以上三种方法好像都不行。
一定要在form1中设置form2中的项
n1是字符串型,不可使用Form2.n1.enable ;= True
 
请大家帮帮忙![:(]
 
Form1中 uses Form2单元 如 : Uses Unit2;

(form2.FindComponent('n1')) as TMenuItem).Enabled:=true;
 

我的方法不行吗?
问题可以这要理解:form2中菜单某项的允许最终要点击form2菜单才知道。既然这样,为什么不考虑将代码写在form2中呢?
 
方法试过了,不行。
程序原本是放在form2中的。
form1是登陆窗口,原本是在form2的oncreate中作的,但把form2做成mdi型后,form1
要从form2创建,要不然子窗口无法创建。form2的oncreate中用于创建form1了。
帮帮忙!
 
Uses Unit2;

with form2 do
TMenuItem(FindComponent('n1')).Enable:= True;
 
with form2 do
TMenuItem(FindComponent('n1')).Enable:= True;
报错 [Error] Unit1.pas(32): Undeclared identifier: 'Enable'
是不是这么做根本就不行,不能根据一个窗口中某项的名字(字符串)在
另一个窗口中设置其enable
 
不好意思
enable 改成enabled
打错了
 
成了![:D]
真是万分感谢!
在下初学delphi,多谢指点。
 

登录框是模态窗口吧,在MainForm中根据ModalResult处理。
另外,登录框不一定要在MainForm中创建的,可以在工程文件中创建(CreateForm(MainForm)之前)
 
后退
顶部