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