7 Stimmen

TLabel zeigt Beschleunigungstasten an, auch wenn der UI-Status dies nicht vorsieht

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 .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X