OnKeyPress keine Umlaute unter Linux

Rund um die LCL und andere Komponenten
Antworten
Mathias
Beiträge: 7220
Registriert: Do 2. Jan 2014, 17:21
OS, Lazarus, FPC: Linux (die neusten Trunk)
CPU-Target: 64Bit
Wohnort: Schweiz

OnKeyPress keine Umlaute unter Linux

Beitrag von Mathias »

Code: Alles auswählen

procedure TForm1.FormKeyPress(Sender: TObject; var Key: char);
var
  ch: char;
begin
  Caption := IntToStr(byte(key));
end;     
Egal welcher Umlaut ich drücke, unter Linux kommt bei Key immer ein '?' (Code 63)
Was mache ich falsch ?

Unter Windows gehen alle Zeichen ohne Probleme.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 11197
Registriert: Mo 11. Sep 2006, 19:01

Re: OnKeyPress keine Umlaute unter Linux

Beitrag von theo »

OnUTF8KeyPress

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

Re: OnKeyPress keine Umlaute unter Linux

Beitrag von Mathias »

Gewusst wie. :mrgreen:

Danke!

Code: Alles auswählen

procedure TForm1.Form1UTF8KeyPress(Sender: TObject; var UTF8Key: TUTF8Char);
begin
  Label1.Caption := UTF8Key + ' - ' + IntToStr(Length(UTF8Key));
end;
 
procedure TForm1.FormCreate(Sender: TObject);
begin
  OnUTF8KeyPress := @Form1UTF8KeyPress;
end;    
Ist dies richtig ?

LCL verwendet generell UTF8.
FPC verwendet das gleiche wie das Betriebssystem.
Windows verwendet Unicode.

Was verwendet Linux ?
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Benutzeravatar
theo
Beiträge: 11197
Registriert: Mo 11. Sep 2006, 19:01

Re: OnKeyPress keine Umlaute unter Linux

Beitrag von theo »

Du musst das nicht "von Hand" einhängen, das steht genauso im Objektinspektor zur Verfügung wie OnKeyPress.

Linux verwendet UTF-8, also Unicode.

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

Re: OnKeyPress keine Umlaute unter Linux

Beitrag von Mathias »

das steht genauso im Objektinspektor zur Verfügung wie OnKeyPress.
Habs gesehen, es steht ganz unten im Objectinspector.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot

Antworten