Delphi: отключить 1 действие из списка действий
Это смешно:) но как сделать что то вроде ActionList1.MyAction.Enable:=false
?
Список действий имеет действия для кнопок, если кнопка невидима, мне нужно отключить ее действие (если этого не сделать и нажать ярлык, то процедура будет выполнена).
Может быть, я что-то не так делаю, но я не назначил действия кнопкам. У меня есть только список действий с действиями. Каждое действие имеет ярлык. При нажатии этого ярлыка выполняется действие и выполняется процедура. Если нажать на кнопку -> будет выполнена такая же процедура.
State:=asSuspended
для всего списка действий.
Спасибо!!!
2 ответа
Вы должны назначить кнопки Action
собственности и контролировать все через действие. Установите действие, чтобы быть отключенным, невидимым и т. Д., И кнопка следует за ним.
Не устанавливайте обработчик события OnClick кнопки, вместо этого используйте соответствующее событие действия. Используйте событие OnUpdate действия, чтобы установить свойства, такие как Visible, Enabled и т. Д., В основном все, что изменяется во время выполнения.
TActionList
список, содержащий один или несколько TAction
"S.
TAction
имеет следующие свойства:
AutoCheck
титр
Проверено
Включено
GroupIndex
HelpContext
HelpKeyword
HelpType
намек
ImageIndex
SecondaryShortCuts
ShortCut
видимый
Включено должно работать нормально, если вы следуете совету Дэвида и делаете все, используя TActionList.
В качестве альтернативы, если taction.enabled
не работает для вас, вы всегда можете проверить, если настройки actionxxxx.shortcut := '';
делает трюк.
Если нет, то другие сочетания клавиш перехватывают нажатие клавиши.
Увидеть:
http://docwiki.embarcadero.com/VCL/XE/en/ActnList.TAction
http://docwiki.embarcadero.com/VCL/en/ActnList.TActionList