Cursor-Tasten läsen CTRL-Left aus

Für allgemeine Fragen zur Programmierung, welche nicht! direkt mit Lazarus zu tun haben.
Antworten
Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Cursor-Tasten läsen CTRL-Left aus

Beitrag von Mathias »

Wen ich folgende Code laufen lasse, wird es rot, wen ich auf dem Cursor block [Left], [Up] und [Right] drücke.
Somit lösen diese 3 Tasten ein CTRL-Left aus.

Code: Alles auswählen

procedure TForm1.FormKeyDown(Sender: TObject; var Key: word; Shift: TShiftState);
begin
  if Shift = [] then begin
    Color := clGreen;
  end else begin
    Color := clRed;
  end;
end; 
Nun zur Frage, liegt dies an meiner billigen Tastatur oder spielt da Linux quer ?
An Lazarus liegt es definitiv nicht. Dieser Fehler tritt auch mit einem C-Programm mit SDL3 auf.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

icho2099
Beiträge: 47
Registriert: Fr 21. Feb 2020, 19:17
OS, Lazarus, FPC: Win10/64
CPU-Target: 64 Bit
Wohnort: Osterholz-Scharmbeck

Re: Cursor-Tasten läsen CTRL-Left aus

Beitrag von icho2099 »

Schau doch mal was in Shift steht,
ziemlich sicher nicht ssCtrl sondern ssNum.
Du prüfst ja auch nur auf leer []

Mathias
Beiträge: 6899
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

Re: Cursor-Tasten läsen CTRL-Left aus

Beitrag von Mathias »

Ich habe es gestern Abend noch auf dem Laptop getestet, da kommt kein Ctrl. Die Cursortasten reagieren gar nicht mehr, wen man eine dritte Taste drückt.
Im Anhang noch ein kleines SDL1.2 Demo. SDL 1.2 ist bei Lazarus Standardmässig dabei.
Es ist nur LCtrl, welches Problem macht.
Echt blöd für einen Shooter, da vielfach LCtrl zum schiessen gebraucht wird.
Dateianhänge
SDL1.2_Keystate.zip
(2.15 KiB) 36-mal heruntergeladen
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten