Zitat von
Bernhard Geyer:
Um halbwegs einfach damit in der
IDE in den
Pas-Files arbeiten zu können benötigst Du D2005.
"
Unicode" umfaßt ja mehr als einen fest zweibytigen Zeichensatz. Das was Windows benutzt (auch intern) ist ja nichts anderes als UCS-2, welches eben bis auf die fehlenden Surrogates UTF-16 entspricht. Man kann ja aber auch noch UTF-8 verwenden. Das geht auch in älteren Versionen der
IDE. Zwar muß der String dann konvertiert werden um mit den "
Unicode-APIs" angezeigt zu werden, aber allemale ginge es.
Zitat von
Bernhard Geyer:
Als Krücke kannst Du die einzelnen Zeichen per Order-Value ansprechen:
xLabel.Caption := WideChar(#$03BA);
Und du bist dir da wirklich ganz sicher? Ich weiß nicht, denke aber, daß du in unserem Thema mitgemischt haben solltest und
meinen Beitrag gelesen haben müßtest ...
Zitat von
Olli:
Zitat von
Kyro:
Delphi 7 speichert das so: Text = #1057#1085#1110#1078#1086#1082'.txt'
Cool, dann können neuere Delphiversionen also doch mit
Unicode-Zeichenliteralen umgehen. Jetzt wäre noch interessant herauszufinden ab welcher Version das möglich ist. Als übliche Verdächtige bleiben nur noch Version 5-7 (wir können ja nicht ausschließen, daß 7 die erste mit dieser Unterstützung war). Bei Delphi 4 wird aus #1057 in der kompilierten Datei ein #33, weil #1057 = #$
0421 ... und der (rote) obere Teil "abgeschnitten" wird, dadurch erhalten wir #33 = #$21.
Bitte:
Wären die Mitdiskutanten mit Delphi 5, 6, 7, 8 mal bitte so freundlich und würden dieses kurze Program kompilieren und anhängen. Danke. Statt Anhängen wäre es vielleicht schneller, wenn ihr die Ergebnisse selber überprüft. Wenn als Ausgabe eine MessageBox mit dem Inhalt "!=V6>:.txt" kommt, speichert Delphi es so wie ich es bei D4 beobachtet habe, was ansonsten kommen müßte, weiß ich jetzt nicht, aber ich denke mal "Сніжок.txt".
Delphi-Quellcode:
program Test;
uses
Windows;
const MsgBoxText:WideString = #1057#1085#1110#1078#1086#1082'.txt';
begin
MessageBoxW(0, @MsgBoxText[1], nil, 0);
end.