Search code examples
delphitactiontactionlist

Delphi: disable 1 Action from Action List


It is funny :) but how to do something like ActionList1.MyAction.Enable:=false?

An Action List has actions for buttons, if a button is invisible I need to disable it's action (if not to do this and pres a shortcut then a procedure will be performed).

May be I do something wrong, but I did not assign actions to buttons. I have only an Action List with Actions. Each action has a shortcut. When this shortcut is pressed then the action is executed and it performs a procedure. If to click on the button -> the same procedure will be performed too.

State:=asSuspended is for a whole Action List.

Thanks!!!


Solution

  • You should assign the button's Action property and control everything via the action. Set the action to be disabled, invisible etc. and the button follows suit.

    Don't set the OnClick event handler of the button, instead use the corresponding event of the action. Use the action's OnUpdate event to set properties like Visible, Enabled etc., basically everything that changes at runtime.