11 Stimme

Delphi/Lazarus: ShiftState abfragen

Frage von Gast | 30.04.2016 um 22:52

Wenn man in Delphi oder Lazarus eine Prozedur wie beispielsweise OnKeyDown, OnKeyPress, OnMouseDown, OnMouseMove oder OnMouseUp anlegt, gibt es dort die Variable Shift vom Typ TShiftState, die den aktuellen Zustand der Tasten STRG, ALT und SHIFT sowie sogar Informationen über die aktuellen Maustasten enthält.

Dagegen fehlt diese Angabe in den meisten anderen Prozeduren (OnClick, OnDblClick, OnKeyPress, OnMouseLeave etc). Was kann man tun, um den aktuellen Shift-Zustand auch in diesen Prozeduren oder an beliebigen anderen Stellen im Programmablauf auslesen zu können?

AntwortenPositivNegativ
2Beste Antwort4 Stimmen

Du kannst dir jederzeit den aktuellen Zustand des ShiftStates über die Funktion GetKeyShiftState holen.

Hier ist ein Beispiel:

procedure BeliebigeProcedure;
var
  AShiftState: TShiftState;
begin    
  AShiftState := GetKeyShiftState;
 
  if ssCtrl in AShiftState then ShowMessage('STRG');
end;

Mehr Informationen zum ShiftState erfährst du hier.
30.04.2016 um 22:58

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Delphi: Systemweiter HotKey

Tutorial | 3 Kommentare

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.