Also ich bin von der Stringverarbeitung in Freepascal eigentlich ziemlich begeistert. In einem Programm habe ich chinesische Sprachunterstützung benötigt, das hat funktioniert, ohne irgendwelche Einstellungen vorzunehmen. Und sogar parallel zur deutschen Anzeigesprache, d.h. mit Umlauten. UTF-8 sei dank. Ich kenn es noch gut, dass in (fremden, kommerziellen) Programmen entweder die deutschen Umlaute kaputt sind, oder die chinesischen Schriftzeichen, je nachdem, welche Sprache/Codepage man unter Windows einstellt. D.h. Programm A ist für die eine Sprache ausgelegt, Programm B für die andere und das Betriebssystem kennt nur eine Einstellung. Mit Unicode ist das kein Thema mehr. Für einen lateinischen Text möchte man auf der anderen Seite keine 4 Byte pro Zeichen verschwenden, daher ist UTF-8 ein guter Kompromiss.
Die dynamischen Strings sind komfortabel und auf der Höhe der Zeit. Die statischen ShortStrings benötigt man aber auch, z.B. für die Rückwärtskompatibilität, oder für die Embedded-Programmierung, wenn keine Speicherverwaltung zur Verfügung steht (sicher noch mehr...). Also sind mindestens zwei verschiedene Stringtypen notwendig.
Die Komplexität kommt also von außen, ich denke es geht halt nicht einfacher wie es im FPC umgesetzt ist. Die Bezeichnungen ShortString und AnsiString sind vielleicht unglücklich gewählt.
Jedoch bin ich heute über ein Problem gestolpert: Das '&' lässt sich bei mir nicht richtig anzeigen, siehe Screenshot. Nur in ShowMessage funktioniert es, in TLabel und TButton wird ein Unterstrich daraus, der unter das nächste Zeichen gesetzt wird.
length(s) bei Umlauten
- kupferstecher
- Beiträge: 431
- Registriert: Do 17. Nov 2016, 11:52
-
- Beiträge: 582
- Registriert: Sa 22. Okt 2016, 23:12
- OS, Lazarus, FPC: W10, L 3.8
- CPU-Target: 32+64bit
- Wohnort: Dresden
Re: length(s) bei Umlauten
Bei TLabel kannst du entweder die Eigenschaft "ShowAccelChar" auf false setzen oder musst 2x& scheiben bei TButton gibts das ShowAccelChar nicht.kupferstecher hat geschrieben:Jedoch bin ich heute über ein Problem gestolpert: Das '&' lässt sich bei mir nicht richtig anzeigen, siehe Screenshot. Nur in ShowMessage funktioniert es, in TLabel und TButton wird ein Unterstrich daraus, der unter das nächste Zeichen gesetzt wird.
Du kannst ja auf TLabel und TButton Hotkeys setzen.
LG Maik
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
Windows 10,
- Lazarus 3.8 (stable) + fpc 3.2.2 (stable)
- Lazarus 4.99 (trunk) + fpc 3.3.1 (main/trunk)
- kupferstecher
- Beiträge: 431
- Registriert: Do 17. Nov 2016, 11:52
Re: length(s) bei Umlauten
Funktioniert, Danke!sstvmaster hat geschrieben: 2x& scheiben