Custom Draw TAction Выпадающее меню
Я создаю выпадающее меню для TActionClientItem со списком TAction. Я хотел бы знать, как я могу подключить событие рисования для меню или каждого TAction внутри, чтобы по-разному отображать заголовок этих TAction!? Что-то вроде TAction.OnDrawItem или TActionClientItem .OnDrawItem ...
procedure xxxxx.BuildActionMenu;
var
iLoop : Integer;
oItem : TAction;
oClientItem : TActionClientItem;
begin
if Assigned(oClientItem) then
for iLoop := oClientItem.Items.Count - 1 downto 0 do
oClientItem.Items.Delete(iLoop);
for iLoop := 0 to List.Count - 1 do
begin
oItem := TAction.Create(actionList);
oItem.Caption := List[iLoop].Name;
oItem.Tag := iLoop;
oItem.OnExecute := HandleOnExecuteMenuItem;
**oItem.OnDraw = WhateverFunction**
oClientItem .Items.Add.Action := oItem;
end;
if Assigned(oClientItem) then
begin
if oClientItem.CommandProperties is TButtonProperties then
TButtonProperties(oClientItem.CommandProperties).ButtonType := btSplit;
TAction(oClientItem.Action).OnExecute := HandleOnExecuteParentItem;
**oClientItem.OnDraw = WhateverFunction**
end;
end;
Приветствия.
1 ответ
Пользовательские обработчики событий рисования всегда присоединяются к компонентам пользовательского интерфейса, а не к действиям. Таким образом, с простым VCL вы не можете делать то, что просите.
Было бы достаточно просто получить собственный класс действий, в который добавлено событие OnDraw. Вы также должны были бы получить свой собственный класс выпадающего меню, чтобы обеспечить другой конец соединения.