Следующий код показывает, как добавить картинку в виде объекта TImage в объект TMenuItem.

Создайте обработчик сообщения WM_MENUCHAR.

 Когда играешь во встроенную  в Windows игру freecell, то справа в меню постоянно пишется сколько осталось карт. Давайте посмотрим, как это делается.

 

Перво наперво положим компонент главного меню на форму.

Теперь установим свойство OwnerDraw в true.

 Далее создайте, то что Вы хотите вырисовывать в меню и создайте OnDrawItem.

В чём вопрос: как узнать, нажат ли сейчас именно нужный пункт меню? Чтобы я в таймере мог его опрашивать на состояние.

До тех пор, пока какая-то часть главного меню "выпала" (то есть нажат итем "Файл", и видны New, Open, Save etc.) нужно чёто делать раз в полсекунды. То есть надо отловить момент, когда это самое меню закроется, чтобы перестать чё-то делать.

 

В своем меню я хочу иметь графику. Но как мне сделать это?

 

Воспользуйтесь командой ModifyMenu. Тем не менее, Delphi 1.0 имеет привычку СТИРАТЬ изменения в пунктах меню, к примеру, созданных на основе изображения или отрисованных вручную. Если вы пользуетесь этими "фишками", вы НЕ должны осуществлять enable/disable или check/uncheck элементов меню через свойства.

 

Code:

{©Drkb v.3}

ModifyMenu(MainMenu.Handle, 3 { индекс меню, начиная слева с нуля},

   mf_ByPosition or mf_Popup or mf_Help, mnuHelp.Handle,

   PChar('Help'));