一个简单的文档编辑程序,在主菜单和右键菜单中同时有copy,cut,paste等操作,用ActionList实现,但是为什么主菜单上Item的自动enable/disable结果不正确?也就是说不是根据RichEdit有选择文本和无选择文本来自动变灰和恢复。而右键菜单总能正确显示状态,并且在点右键以后,再看主菜单又显示的是正确的。这是什么原因?ActionLIst的OnUpdate事件是这样的:procedure TMainForm.ActionList1Update(Action: TBasicAction;
var Handled: Boolean);
begin
{ Update the status of the edit commands }
EditCutCmd.Enabled := CurrRichEdit.SelLength > 0;
EditCopyCmd.Enabled := EditCutCmd.Enabled;
EditDeleteCmd.Enabled := EditCutCmd.Enabled;
if CurrRichEdit.HandleAllocated then
begin
EditUndoCmd.Enabled := CurrRichEdit.Perform(EM_CANUNDO, 0, 0) <> 0;
EditPasteCmd.Enabled := Clipboard.Hasformat(cf_text);
end;
end;
var Handled: Boolean);
begin
{ Update the status of the edit commands }
EditCutCmd.Enabled := CurrRichEdit.SelLength > 0;
EditCopyCmd.Enabled := EditCutCmd.Enabled;
EditDeleteCmd.Enabled := EditCutCmd.Enabled;
if CurrRichEdit.HandleAllocated then
begin
EditUndoCmd.Enabled := CurrRichEdit.Perform(EM_CANUNDO, 0, 0) <> 0;
EditPasteCmd.Enabled := Clipboard.Hasformat(cf_text);
end;
end;
解决方案 »
- 急.TServerSocket的onClientRead为什么会执行两次呢
- table 和 query 的哪个查询效率高点
- 哪位大侠给一个WINDOWS运行后自动运行我的程序的代码
- 请大家帮帮忙啊!!!谢谢!
- 高分求教snmp的trap问题
- 兄弟我用ADO+ACCESS写了个软件,在当前工作目录下链接数据库完全正常,但是用主程序的快捷方式访问却无法链接数据库,为何,有什么解决
- 如何获得鼠标当前位置!(100分)
- delphi中如何改变按钮的颜色?
- 主子表单显示的问题
- 动态调用函数的问题??!!
- 自己写了一个控件,但还没有进行安装到面板上。我用程序进行调试,不能进入到代码行?怎么办呢?详细信息请进入。
- 请教调用VC创建的DLL的相关问题
Copy Cut Paste等等的动作。在TActionList中Editing窗口中,选择
New Standard Action 中可以创建标准的动作。