In den Standardeinstellungen von Windows werden die Tastenkombinationen erst dann in Dialogen angezeigt, wenn der Benutzer die Taste ALT Schlüssel.
Delphi's TLabel
Steuerung hält sich nicht an diese Konvention, wie unten gezeigt:
Obwohl sowohl für das Etikett als auch für das Kontrollkästchen eine Beschleunigungstaste angegeben ist, wird sie beim Kontrollkästchen korrekt ausgeblendet, beim Etikett jedoch nicht. Natürlich, wenn ALT gedrückt wird, wird das Gaspedal für das Kontrollkästchen angezeigt, aber das Verhalten davor ist falsch.
Meines Erachtens ist der Grund dafür, dass der VCL-Code, der dieses Verhalten implementiert, in TWinControl
, zum Beispiel die UpdateUIState
Methode und ist darauf angewiesen, dass das zugrundeliegende Fenstersteuerelement eine WM_CHANGEUISTATE
Nachricht. Da TLabel
nicht gefenstert ist, bleibt diese Behandlung aus.
Kann jemand einen Weg vorschlagen, wie man das gewünschte Verhalten für Nicht-Fenstersteuerungen erreichen kann?
Aktualisierung 1
Ich habe gerade entdeckt, dass Gruppenfelder und Radiogruppen auch nicht auf den UI-Status reagieren.
Aktualisierung 2
QC#97044 .