Я хотел бы выделить значки на панели инструментов, когда их связанное действие имеет свойство «флажок», установленное в значение true. Я хотел бы сделать это способом, аналогичным тому, как это делал Microsoft Office 2003, например, см. значки Bold и Align Left на этом изображении:
Изображение нарисовано с рамкой вокруг него, а фон был изменен на оранжевый.
Как я могу реализовать это с помощью Delphi 2009?
В качестве бонуса, есть ли способ сделать то же самое со значком в меню для соответствующего элемента? например как показано ниже с записями линейки и разметки:
Followup:
Спасибо, Андреас, за простой и правильный ответ на мой вопрос. Как программист Delphi 4, преобразованный в Delphi 2009, я не был достаточно знаком с дополнениями VCL Delphi 5-7, поэтому TActionManager, TActionToolbar и их работа не были в моем словаре Delphi. И это основано на способности Delphi использовать стиль, родственный теме Microsoft O / S.
Однако, с вашим ответом и небольшим исследованием, использующим его, я подтверждаю, что я не хочу делать это таким образом. Яркая тема Embarcadero: всплывающие меню: «Проверенные» элементы со значком, который больше не отображается как утонувший? , когда Питер Белоу поделился своим опытом, заставил меня понять, что я не хочу переходить на тему XP все, так как это пойдет на пользу пользователям Vista и Windows 7, вернув их в Бронзовый век.
Настоящий виновник здесь в том, что есть определенные вещи, которые темы O / S хотят, чтобы вы уважали. Delphi пытается следовать правилам. Я могу вернуться к XP, стилю / теме XP и карте цветов XP. В этом режиме отмеченные элементы будут подсвечены. И это действительно все, что я хотел - выделить проверенные позиции. Я использовал Office 2003 в качестве примера, потому что это было то, что я хотел. Но я действительно не хотел полностью менять темы и придавать новый вид моей программе. Это особенно заставит пользователей Vista и Windows 7 выглядеть неестественно.
Что было бы идеально, если бы у меня был другой набор изображений, который будет применяться при проверке объекта ... но нет свойства "CheckedImages". Или способ программного или автоматического изменения изображения, если оно отмечено (например, отключенные изображения получают версию своего включенного изображения в оттенках серого).
Я все еще не возражал бы услышать от кого-нибудь, есть ли способы реализовать это или что-то еще, что могло бы работать одинаково хорошо, без изменения всего вида моей программы.