Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie? (https://www.delphipraxis.net/81793-tmainmenu-alt-buchstabe-hotkeys-dauerhaft-anzeigen-wie.html)

cuchu 4. Dez 2006 08:17


TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie?
 
Hallo zusammen,

wenn ein Menüeintrag die Catption ein "&" enthält kann der Eintrag über die Tastenkobination "ALT+Zeichen nach &" angesprochen werden.
Diese Hotkeys werden im Menü dann durch ein "_" markiert, allerdings erst nachdem die Taste ALT gedrückt wurde.

Wie kann ich erreichen das die Markierung dauerhaft erscheint, auch ohne zuvor ALT zu drücken???

Klaus01 4. Dez 2006 08:39

Re: TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie
 
So weit ich das weiß, kann dieses Verhalten nicht verändert werden.

edit: da lag ich wohl falsch: Hier ist ein Weg beschrieben wies es geht.
Grüße
Klaus

Hawkeye219 4. Dez 2006 08:51

Re: TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie
 
Hier ist der "saubere" Weg für eine systemweite Einstellung:

Öffne über einen Rechtsklick auf dem Desktop den Dialog zur Einstellung der Anzeigeeigenschaften. Auf der Seite "Darstellung" öffnest du mit dem Button "Effekte..." einen weiteren Dialog. Dort kannst du über die CheckBox "unterstrichene Buchstaben für..." das Verhalten einstellen.

Gruß Hawkeye

cuchu 4. Dez 2006 12:20

Re: TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie
 
Hallo,

Danke für die schnellen Antworten. Ich möchte diese Einstellung für meine Anwendungen explizit setzen, es muss egal sein was dafür in der Systemsteuerng eingetragen ist.

hab den Link von Klaus01 mal so nach Delphi "umgesetzt":

Delphi-Quellcode:

  SendMessage(
  Form.Handle,
  WM_CHANGEUISTATE,
  MakeLong(UIS_CLEAR, UISF_HIDEACCEL),
  0);


  //und-oder

  SendMessage(
  Mainmenu.Handle,
  WM_CHANGEUISTATE,
  MakeLong(UIS_CLEAR, UISF_HIDEACCEL),
  0);

  //und-oder

  SendMessage(
  Menuitem.Handle,
  WM_CHANGEUISTATE,
  MakeLong(UIS_CLEAR, UISF_HIDEACCEL),
  0);

leider funktioniert keine von den 3 Wegen, was mache ich falsch??



Edit: aufgerufen habe ich das Ganze in FormActivate, bei -Create oder -Show funktioniert es leider auch nicht :-/

Luckie 4. Dez 2006 12:46

Re: TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie
 
Zitat:

If the low-order word of wParam is UIS_INITIALIZE, the system will send the WM_UPDATEUISTATE message with a UI state based on the last input event. If the state that results from processing WM_CHANGEUISTATE is the same as the old state,
Ich habe ehrlich gesagt nicht ganz verstanden, was die Nachricht machen soll. Aber der letzte, von mir zitierte Satz, klingt so, als wenn da nichts geändert wird.

Zitat:

An application sends the WM_CHANGEUISTATE message to indicate that the user interface (UI) state should be changed.
Wenn man den letzten teil des Satzes mit "geändert werde soll" übersetzt, dann würde das auch meine Vermutung untermauern.

Ansonstn versuch mal MAKEWPARAM anstatt MakeLong.

teebee 4. Dez 2006 12:52

Re: TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie
 
Geht es vielleicht mit Application.Handle als Ziel?

Gruß, teebee

cuchu 4. Dez 2006 13:31

Re: TMainMenu: ALT+Buchstabe Hotkeys dauerhaft anzeigen, wie
 
Zitat:

Ansonstn versuch mal MAKEWPARAM anstatt MakeLong.



Zitat:

Geht es vielleicht mit Application.Handle als Ziel?

bringt leider beides nix


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:05 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