Bei Strings ist
- das Verhalten der alten (nicht Unicode-fähigen) Lazarus/FPC-Versionen identisch mit dem dem von älteren (nicht Unicode-fähigen) Delphi-Versionen (->1).
- das Verhalten von neueren (Unicode-fähigen) Lazarus/FPC-Versionen (->2) sehr unterschiedlich von dem von älteren (nicht Unicode-fähigen) Delphi-Versionen. Es ist auch nicht möglich, über irgendwelche Optionen ein "altes" (nicht Unicode orientiertes) Verhalten einzustellen, wenn man in seiner Anwendung Unicode nicht braucht.
- das Verhalten von neueren (Unicode-fähigen) Delphi-Versionen (->3) ziemlich unterschiedlich von dem von älteren (nicht Unicode-fähigen) Delphi-Versionen.
- das Verhalten der aktuellen (Unicode-fähigen) Lazarus/FPC-Version sehr unterschiedlich zu dem der aktuellen (Unicode-fähigen) Delphi-Version(en)
- das Verhalten der zukünftigen (Unicode-fähigen) Lazarus/FPC-Version vermutlich identisch oder zumindest sehr ähnlich zu dem der aktuellen (Unicode-fähigen) Delphi-Version(en)
Momentan also am besten keine Energie in das Erlernen der String - Operationen der aktuellen Lazarus-Version stecken.
In einfachen Fällen wird der nicht-Unicode Sourcecode funktionieren, wenn der "neue String Typ" (->3) statt 8-Bit-Strings (->1) verwendet wird. Verwendet man aber die aktuellen "Lazarus Strings" (->2) läuft der alte Sourcecode bei "deutschen" Programmen quasi nie.
(1) der "ANSISTRING" Typ wird als Folge von 8-Bit ANSI-Zeichen in der lokalen ANSI-Codierung (Windows-Einstellung)interpretiert
(2) der "ANSISTRING" Typ wird als UTF8-codiert behandelt, jedes dieser Zeichen kann mit 8, 16, 24 oder 32 Bit codiert sein.
(3) neuer String-Typ mit variabler Codierung mit 8, 16, oder 32 Bit Charactern in ANSI-Codierung mit einstellbarer Codepage, UTF8, UTF16, oder 32 Bit UNICODE.
-Michael