Użyj akcji, a więc kładziesz TActionList
w nim tworzysz nową akcję; określasz Caption
i ImageIndex
(spinasz TImageList
z TActionList
), oczywiście oprogramowujesz darzenie akcji.OnExecute
. Ten kod będzie odpowiadał za uruchomienie akcji, czyli kliknięcie w menu czy odpalenie jej za pomocą skrótu klawiszowego.
Następnie tworzysz menu i spinasz TMentuItem
z konkretną TAction
i to wszystko!
Aby wyszarzyć pozycję menu ustawiasz akcji podpiętej pod to menu właściwość Enabled
na False.
Reszt zrobi się sama, czyli:
- Akcja zostanie zablokowana, a więc nie da jej się odpalić za pomocą kliknięcia w TMentuitem lub za pomocą odpowiedniego skrótu.
- Akcja automatycznie rozmawia z przypiętymi do niej kontrolkami (TMenuItem, TButton, TToolbarButton itd.), a więc reaguje na ustawienie
Enabled
gdzie wyszarza kontrolkę i obrazek przypięty do akcji.
Akcje to bardzo wygodny mechanizm i nie korzystanie z nich to błąd; pewnie że można zrobić to bez nich, ale po co wymyślać koło na nowo?