![]() |
Hi,
vielleicht ist es einfach einem "normalen" Menü ein Hint zuzufügen, als bei einem Kontextmenü. Ich selbst hab auch noch keine Hints in einem Kontextmenü gesehen. Aber lass dich davon nicht abbringen, ich weiss was du vor hast. ;) Grüsse, Daniel :) |
Irgendwie muß das gehen und wenn ich die selbst zeichnen muß.
|
Hat denn echt keiner 'ne Idee?
|
AW: Hint beim PopUp
Ich weiß, is schon alt, aber da ich auch danach suchte....
![]() Theoretisch müßte es so dann doch funktionieren.
Delphi-Quellcode:
var MenuHintWindow : THintWindow;
procedure THauptForm.ApplicationEvents1Message(var Msg: tagMSG; var Handled: Boolean); var SubMenu : HMENU; MenuItem : TMenuItem; HintPos : TRect; begin if (Msg.message = WM_MENUSELECT) and (({MenuFlag}HIWORD(Msg.wParam) <> $FFFF) or ({IDItem}LOWORD(Msg.wParam) <> 0)) then begin if {MenuFlag}HIWORD(Msg.wParam) and MF_POPUP <> 0 then begin SubMenu := GetSubMenu(HMENU(Msg.lParam), {IDItem}LOWORD(Msg.wParam)); MenuItem := Self.Menu.FindItem(SubMenu, fkHandle); end else MenuItem := Self.Menu.FindItem({IDItem}LOWORD(Msg.wParam), fkCommand); if MenuItem.Hint <> '' then begin if not Assigned(MenuHintWindow) then MenuHintWindow := TGenerics.IfThen<THintWindowClass>(Assigned(HintWindowClass), HintWindowClass, THintWindow).Create(Self); HintPos.TopLeft := Mouse.CursorPos; HintPos.TopLeft := Point(HintPos.Left + 16, HintPos.Top + 16); HintPos.BottomRight := Point(HintPos.Left + Canvas.TextWidth(MenuItem.Hint), HintPos.Top + Canvas.TextHeight(MenuItem.Hint)); MenuHintWindow.ActivateHint(HintPos, MenuItem.Hint); end else Application.HideHint; Handled := True; end; end; Aber WM_MENUSELECT wird nicht aufgerufen, wenn ich die Maus über dem Popup-Menü bewege. Auch beim direkten Weg kommt nichts an.
Delphi-Quellcode:
Gut, könnte ja sein, daß es an das TPopupMenu gesendet wird und nicht an die TForm, aber dann müßte es doch dennoch am TApplicationEvent.OnMessage (Application.OnMessage) vorbeikommen. :gruebel:
private
procedure WMMenuSelect(var Msg: TWMMenuSelect); message WM_MENUSELECT; end |
AW: Hint beim PopUp
Hallo himitsu,
bin den gleichen Weg gegangen wie Du (Tip von About.com)und kann die WM_MENUSELECT ebenfalls nicht abfangen. Gibt es hier eine Lösung? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:36 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz