Einzelnen Beitrag anzeigen

Benutzerbild von dummzeuch
dummzeuch

Registriert seit: 11. Aug 2012
Ort: Essen
1.469 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#1

Umlaute aus GUI verarbeiten

  Alt 31. Dez 2012, 11:37
Hi,

Eigentlich wollte ich Lazarus "mal eben" ausprobieren und habe ein simples Buchstabier-Programm, das ich in Delphi geschrieben habe, von Lazarus konvertieren lassen.

Mit einer einzigen kleinen Aenderungen compilierte es dann und macht auch fast, was es soll. Es kommt nur mit Umlauten in der Eingabe nicht klar.

folgender Code:

Code:
procedure TForm1.Edit1(Sender: TObject);
var
  s: string;
  i: integer;
  c: char;
begin
  s := Edit1.Text;
  for i := 1 to Length(s) do begin
    c := s[i];
    doSomething(c);
  end;
end;
Macht komische Dinge, wenn ich Umlaute eingebe, die Laenge ist dann jeweils um 1 groesser als erwartet und statt des Umlauts erhalte ich zwei Zeichen.

Meine Vermutung: UTF-8 Kodierung.

Aber wie bekomme ich jetzt aus dem String die korrekten Zeichen heraus? 'Gräfin' soll 6 Zeichen haben, nicht 7 und das 3. Zeichen soll ein 'ä' sein (und das 4. ein 'f').

In Delphi passiert das automatisch. Was muss ich in Lazarus machen?

twm
Thomas Mueller
  Mit Zitat antworten Zitat