Wenn Windows oder zumindestens die Delphi-
IDE und der Compiler mit der "passenden" CodePage laufen, dann könntest du auch direkt abeiten,
Value := 'Kwota łączna PLN';
so wie es seit Delphi 2009 durchgängig funktioniert, wenn die
PAS als
Unicode (z.B. UTF-8) gespeichert wird.
Value := 'Kwota '#$F9#$E0'czna PLN';
#zzz
#$xx
#$00xx // mathematisch macht es keinen Unterschid, aber für den Compiler schon
Chr($xx)
Char($xx)
WideChar($xx)
Bei AnsiChars und UnicodeChars im Code mußt du auch aufpassen wie und ob der Compiler da CodePages beachtet und womöglich übersetzt.
z.B. #$0085 und #$85 in einem UnicodeString sind nicht das Selbe, denn einmal wird es als UnicodeChar betrachtet und 1:1 übernommen, während es anderseits also
ANSI angesehn und convertiert würde.
Einiges wird im Editor übersetzt (hier egal, wenn du dort nur mit
ASCII arbeitest und Chars nur Ordinal [INT oder HEX] deklarierst),
anderes wird bereits vom Compiler behandelt/convertiert, also auf deinem PC,
und zuletzt kann es auch erst zur Laufzeit behandelt/convertiert werden, also auf dem Zielrechner.
Das betrifft auch deinen aktuellen Quellcode, falls du doch irgendwann mal auf ein neues Delphi umsteigst,
denn das was jetzt noch
ANSI mit entsprechender Codepage darstellt, könnte später etwas Anderes sein. (Chr/Char = AnsiChar bis D2007, aber später wird es WideChar)
https://www.embarcadero.com/images/d...-migration.pdf
http://docwiki.embarcadero.com/RADSt..._in_RAD_Studio
Seit 2009 wird auch zur Laufzeit in der AnsiString-Variable die CodePage gespeichert und für Convertierungen verwendet.
Davor wird ausschließlich der Typ der Variable und nicht der aktuelle Inhalt dafür genutzt.
Den Grundtyp kann man bei der Deklaration angeben und teilweise auch später nochmal ändern.
SetCodePage
Delphi-Quellcode:
type
CZString = AnsiString(1250);
var
S: CZString;
S := 'Kwota '#$F9#$E0'czna PLN';
Der Vorteil beim
Unicode ist, dass man sich nicht mehr so extrem mit CodePages auseinandersetzen muß,
wo jede Variable/Komponente mit einer anderen CodePage arbeiten könnte.