我从 ThoughtCo 网站上得到了下面的代码。(Zarko Gajic) - 当鼠标指针位于菜单项中时,它会在鼠标指针附近显示提示:

但是,它有一个错误:当通过键盘打开菜单时,无论鼠标指针在屏幕上的位置如何,工具提示都会出现在鼠标指针旁边:

我尝试通过添加注释行来修复该错误。现在的错误是,无论您是否快速单击菜单项,提示总是出现。
如何解决这个问题?
procedure TfrmPrincipal.WMMenuSelect(var Msg: TWMMenuSelect);
var
menuItem : TMenuItem;
hSubMenu : HMENU;
hPopupWnd: HWND; // Added
R: TRect; // Added
Pt: TPoint; // Added
begin
inherited;
menuItem := nil;
if (Msg.MenuFlag <> $FFFF) or (Msg.IDItem <> 0) then
begin
if Msg.MenuFlag and MF_POPUP = MF_POPUP then
begin
hSubMenu := GetSubMenu(Msg.Menu, Msg.IDItem);
menuItem := Self.Menu.FindItem(hSubMenu, fkHandle);
end
else
begin
menuItem := Self.Menu.FindItem(Msg.IDItem, fkCommand);
end;
end;
hPopupWnd := FindWindow('#32768', nil); // Added
if …Run Code Online (Sandbox Code Playgroud)