我是这样的:在主Form上拖放一MainMenu,并有MenuItem N1“打开文件”,并建立SubItem N2、N3、N4分别为“文件1”、“文件2”、“文件3”。现在我想这样处理,在另一个关联组件TreeView1上对应上面的 N2、N3、N4,当点击TreeView1上相关节点时,反映到MainMenu的相关SubItem需要动态处理,比如我想在TreeView1上点击“文件1”时,MainMenu上的SubItemN2的文字颜色改变。我应该怎么处理,才妥当??在线急等!!!!!!!!
解决方案 »
- DBgrideh动态添加列
- 调用DLL出现警告问题?在线等待~!
- 急,sql server 2000 占资源问题!
- 怎样将SQL explorer 中看到的数据导成EXCLE格式?
- 急:如何实现运行时拖动组件?
- winsocket 扩展函数调用。up,gz有分。
- 紧急问题!!!请问如何用delphi向SQL Server表中的smalldatetime类型的字段添加记录?谢谢
- 唉,為什么我看VCL中的一些較簡單的代碼,總是看不明,我該怎樣遂步看VCL中的代碼?
- 毕业学什么好?找工作让人头痛!谁帮我推荐一下?
- 一段c#代码,是调用了dll,大侠们帮我转为delphi版本,谢谢。
- [版务贴] 导分投诉热线
- 取文件大小出错,求助!急!
你把这些处理都写在菜单里
treeview点击时,处理相应的菜单事件
把变化菜单的代码写在菜单的点击响应函数里面;
在treeview的onmousedown里面写:tmenuitem(node.data).click();
实在不行你就强制转换成pointer,反正长度一样。
我用Checked属性来代替,就是在菜单项前面有一个小钩钩。在Treeview1的OnClick里写的代码如下,可以实现点击某节点,对应的菜单项被打上钩:procedure TForm1.TreeView1Click(Sender: TObject);
var
i: Integer;
begin
if TreeView1.Selected=nil then exit;
for i:=1 to 3 do
if TreeView1.Selected.Text='文件'+IntToStr(i) then
begin
N2.Checked:=false;
N3.Checked:=false;
N4.Checked:=false;
case i of
1: N2.Checked:=true;
2: N3.Checked:=true;
3: N4.Checked:=true;
end;
break;
end;
end;