ActionList的小问题(28分)

  • 主题发起人 主题发起人 autumn
  • 开始时间 开始时间
A

autumn

Unregistered / Unconfirmed
GUEST, unregistred user!
Edit1:TAction
我在程序运行时动态改变了Edit1.OnExecute的指向。如何更改相应的TSpeedButton,TMenuItem
的OnClick事件
 
TActionList,或TAction是否提供了这样的方法
 
Tspeedbutton、TMenuitem的Action属性
 
Edit1:TAction

btnEdit:TToolButton
btnEdit.Action=Edit1

EditItem:TMenuItem
EditItem.Action=Edit1

NewEvent:TNotifyEvent
现在Edit1.OnExecute指向NewEvent 如何才能自动更新btnEdit和EditItem的OnClick事件

eye4的方法不行
 
奇怪,我这里这么没有你说的那中情况呢?
 
我的环境:pwin2000/delphi5 p1
开始设计的时候(在IDE中)我是没有给Edit1.OnExecute写任何东西的。只是在后面的
程序事件中给Edit1.OnExecute赋值的
 
你给Edit1.OnExecute 设计期写一行空代码,并给btnEdit.action赋过去试试。。
 
在ide中定义一行空的代码
还是赋不了值
 
仅仅是解决方法,要写几行代码:
在BtnEdit.OnClick和EditItem.OnClick中写:
Edit1.Execute;

这样,动态改变Edit1.OnExecute就没问题了。



 
多人接受答案了。
 
add two editbox on the form:

procedure TForm1.Action1Execute(Sender: TObject);
begin
IF Sender is TEdit then
if TEdit(Sender) = Edit1 then
showmessage('Edit1 Clicked')
else if TEdit(sender) =Edit2 then
showmessage('Edit2 Clicked')
else
showmessage('Bad');
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.OnClick :=Action1Execute;
Edit2.OnClick :=Action1Execute;
 
后退
顶部