![]() |
Umlaute aus GUI verarbeiten
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:
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.
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; 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 |
AW: Umlaute aus GUI verarbeiten
Ve´rsuch es mal als AnsiString
|
AW: Umlaute aus GUI verarbeiten
Zitat:
|
AW: Umlaute aus GUI verarbeiten
Iiih, ist das gruselig: Man muss beim Einlesen von UTF8 nach ANSI wandeln und bei der Ausgabe wieder von ANSI nach UTF8.
Jetzt funktioniert's. Falls sich jemand das ansehen moechte (compiliert mit Lazarus und Delphi XE2): ![]() Naja, jetzt weiss ich zumindest schonmal, dass Lazarus fuer die Arbeit erstmal keine Alternative ist. Danke fuer die Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:55 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz