length(s) bei Umlauten

Für Fragen zur Programmiersprache auf welcher Lazarus aufbaut
Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: length(s) bei Umlauten

Beitrag von kupferstecher »

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.
Dateianhänge
Fehler&.PNG

sstvmaster
Beiträge: 575
Registriert: Sa 22. Okt 2016, 23:12
OS, Lazarus, FPC: W10, L 2.2.6
CPU-Target: 32+64bit
Wohnort: Dresden

Re: length(s) bei Umlauten

Beitrag von sstvmaster »

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.


Bei TLabel kannst du entweder die Eigenschaft "ShowAccelChar" auf false setzen oder musst 2x& scheiben bei TButton gibts das ShowAccelChar nicht.

Du kannst ja auf TLabel und TButton Hotkeys setzen.
LG Maik

Windows 10,
- Lazarus 2.2.6 (stable) + fpc 3.2.2 (stable)
- Lazarus 2.2.7 (fixes) + fpc 3.3.1 (main/trunk)

Benutzeravatar
kupferstecher
Beiträge: 418
Registriert: Do 17. Nov 2016, 11:52

Re: length(s) bei Umlauten

Beitrag von kupferstecher »

sstvmaster hat geschrieben: 2x& scheiben

Funktioniert, Danke!

Antworten