Einzelnen Beitrag anzeigen

Olli
(Gast)

n/a Beiträge
 
#6

Re: griechische Zeichen (Unicode) im Delphi Editor

  Alt 25. Aug 2005, 10:00
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.
  Mit Zitat antworten Zitat