Как я могу реализовать выделенные значки панели инструментов с помощью Delphi?

Я хотел бы выделить свои значки на панели инструментов, когда для связанного с ними действия свойство "checked" установлено на true . Я хотел бы сделать это аналогично тому, как это сделал Microsoft Office 2003, например, увидеть значки жирного шрифта и выравнивания по левому краю на этом изображении:

Toolbar example

Изображение нарисовано с рамкой вокруг него, а фон был изменен на оранжевый.

Как я могу реализовать это с помощью Delphi 2009?

В качестве бонуса, есть ли способ сделать то же самое со значком в меню для соответствующего элемента? например как показано ниже с записями линейки и разметки:

Menu example


Продолжение:

Спасибо, Андреас, за простой и правильный ответ на мой вопрос. Как программист Delphi 4, преобразованный в Delphi 2009, я был недостаточно знаком с дополнениями VCL к Delphi 5–7, поэтому TActionManager, TActionToolbar и их работа не входили в мой словарь Delphi. И это основано на способности Delphi использовать стиль, похожий на тему Microsoft O / S.

Тем не менее, с вашим ответом и небольшим исследованием с его использованием, я подтверждаю, что не хочу делать это в таким образом. Освещающая ветка Embarcadero re: Всплывающие меню: «Отмеченные» элементы, значок которых больше не отображается как затонувший? с участием Питера Боула, делающего свой опыт, заставили меня понять, что я не хочу переходить на тему XP на все, поскольку это будет делать плохие вещи для пользователей Vista и Windows 7, возвращая их в бронзовый век.

Истинный виновник здесь состоит в том, что есть определенные вещи, которые темы ОС хотят, чтобы вы уважали. Delphi старается следовать правилам. Я могу вернуться к XP, стилю / теме XP и цветовой карте XP. В этом режиме отмеченные пункты будут подсвечены. И это действительно все, что я хотел - выделить отмеченные пункты. Я использовал Office 2003 в качестве примера, потому что это было то, что мне нужно. Но я действительно не хотел полностью менять темы и заставлять по-новому взглянуть на мою программу. Это особенно сделало бы вещи неестественными для пользователей Vista и Windows 7.

Было бы идеально, если бы у меня был другой набор изображений, которые применялись бы, когда объект отмечен ... но нет свойства "CheckedImages" . Или способ программного или автоматического изменения изображения, если оно отмечено (например, как отключенные изображения получают версию своего включенного изображения в оттенках серого).

Я все равно не прочь услышать от кого-нибудь, есть ли какие-то способы реализовать это или что-то еще, что могло бы работать одинаково хорошо, без изменения всего внешнего вида моей программы.

5
задан lkessler 4 February 2011 в 03:20
поделиться