gpt4 book ai didi

delphi - 自定义绘制 TAction 下拉菜单

转载 作者:行者123 更新时间:2023-12-03 00:26:17 26 4
gpt4 key购买 nike

我为带有 TAction 列表的 TActionClientItem 创建了一个下拉菜单。我想知道如何 Hook 菜单或其中每个 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;

干杯。

最佳答案

自定义绘图事件处理程序始终附加到 UI 组件而不是操作。因此,使用普通的 VCL,您无法执行您所要求的操作。

派生您自己的添加 OnDraw 事件的操作类非常简单。您还必须派生自己的下拉菜单类以提供连接的另一端。

关于delphi - 自定义绘制 TAction 下拉菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9424983/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com