Delphi-PRAXiS
Seite 3 von 3     123   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Lazarus (IDE) (https://www.delphipraxis.net/81-lazarus-ide/)
-   -   Objekte Bewegen (https://www.delphipraxis.net/176194-objekte-bewegen.html)

Finki 20. Aug 2013 09:53

AW: Objekte Bewegen
 
Das Problem ist ü ö ä werden als zwei Zeichen gezählt

DeddyH 20. Aug 2013 10:13

AW: Objekte Bewegen
 
Das glaub ich nicht. Es sind zwar ggf. 2 Byte, aber immer noch ein Zeichen.

Finki 20. Aug 2013 10:16

AW: Objekte Bewegen
 
Liste der Anhänge anzeigen (Anzahl: 2)
hier sind bilder

DeddyH 20. Aug 2013 10:18

AW: Objekte Bewegen
 
Und womit errechnest Du die Zeichenanzahl?

Finki 20. Aug 2013 10:32

AW: Objekte Bewegen
 
Delphi-Quellcode:
StatusBar.Panels.Items[1].Text := Format('%d Zeichen', [Length(Memo1.Text)-(2*Memo1.Lines.Count)+1]);

DeddyH 20. Aug 2013 10:38

AW: Objekte Bewegen
 
So, einfaches Beispielprojekt unter Delphi XE: ein Memo und eine Statusbar, im OnChange des Memos folgender Code
Delphi-Quellcode:
StatusBar1.SimpleText := Format('%d Zeichen', [Length(Memo1.Text)]);
Eingabe:
Zitat:

Dies ist ein Testäöü
Anzeige in der Statusbar:
Zitat:

20 Zeichen
Das Einzige, was hier 2 Zeichen produziert, ist der Zeilenumbruch, da dieser unter Windows ja tatsächlich aus 2 Zeichen (#13#10) besteht.

DeddyH 20. Aug 2013 16:43

AW: Objekte Bewegen
 
So, unter Lazarus auf Linux Mint ausprobiert: Umlaute werden tatsächlich als 2 Zeichen gezählt, siehe auch dieser Thread. Ich hatte jetzt keine Lust, den komplett zu lesen, aber wenn dort keine Lösung steht, kann ich Dir auch nicht helfen, das ist wohl in Lazarus so gewollt.

Finki 21. Aug 2013 06:18

AW: Objekte Bewegen
 
Gut vielen dank für deine Mühe

JamesTKirk 22. Aug 2013 08:34

AW: Objekte Bewegen
 
Zitat:

Zitat von Finki (Beitrag 1225450)
Das Problem ist ü ö ä werden als zwei Zeichen gezählt

Lazarus verwendet UTF-8 als Zeichenkodierung und nicht ASCII oder eine der Ansi Kodierungen. Bei UTF-8 haben Sonderzeichen unterschiedliche Längen (ich glaub bis zu 6 Byte maximal).
Delphi-Quellcode:
Length()
unterstützt dies jedoch nicht (es gibt dir hier nur die Anzahl der Bytes zurück). Lazarus bietet allerdings eine
Delphi-Quellcode:
UTF8Length()
Funktion in der Unit
Delphi-Quellcode:
lazutf8
. Für weitere Informationen lies dir bitte diesen Artikel im Lazarus Wiki durch.

Gruß,
Sven


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:41 Uhr.
Seite 3 von 3     123   

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-2025 by Thomas Breitkreuz