AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Hint beim PopUp

Ein Thema von Tpercon · begonnen am 13. Jun 2002 · letzter Beitrag vom 10. Jan 2014
Antwort Antwort
Seite 2 von 2     12   
Daniel B
(Gast)

n/a Beiträge
 
#11
  Alt 14. Jun 2002, 13:51
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
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#12
  Alt 14. Jun 2002, 14:00
Irgendwie muß das gehen und wenn ich die selbst zeichnen muß.
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#13
  Alt 18. Jun 2002, 16:52
Hat denn echt keiner 'ne Idee?
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 Beiträge
 
Delphi 12 Athens
 
#14

AW: Hint beim PopUp

  Alt 21. Jun 2012, 16:19
Ich weiß, is schon alt, aber da ich auch danach suchte....

http://delphi.about.com/od/vclusing/a/menuitemhints.htm


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:
private
  procedure WMMenuSelect(var Msg: TWMMenuSelect); message WM_MENUSELECT;
end
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.
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.
  Mit Zitat antworten Zitat
ZOD

Registriert seit: 6. Mai 2009
97 Beiträge
 
#15

AW: Hint beim PopUp

  Alt 10. Jan 2014, 07:25
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?
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz