Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi griechische Zeichen (Unicode) im Delphi Editor (https://www.delphipraxis.net/52185-griechische-zeichen-unicode-im-delphi-editor.html)

skyware 25. Aug 2005 05:27


griechische Zeichen (Unicode) im Delphi Editor
 
Hallo zusammen,

wiedermal bin ich auf ein Problem gestossen. Ich bin daran
meine Applikation Unicode fähig zu machen. Das ich andere
Komponenten die Unicode fähig sind brauche hab ich verstanden :thumb:
Die Frage ist nun wie kann ich direkt im Delphi Editor z.B. griechische
Zeichen eingeben ?

Delphi-Quellcode:
xLabel.Caption := 'κομμθνιψατιον';
Ich kriege einfach diese Zeichen nicht in den Editor.
Im Word z.B. klappt es einwandfrei.
Was muss ich hier noch beachten?

Gruss und Danke im voraus :drunken:

MarcoWarm 25. Aug 2005 06:56

Re: griechische Zeichen (Unicode) im Delphi Editor
 
also mit Delphi 6 stehen die Chancen ganz schlecht, daß du das im Editor hinbekommst. Die direkte Eingabe von Multibyte-Strings wird nicht mal in D7 unterstützt.

Idee 1: lade die Strings zur Laufzeit aus der Resource
Idee 2: Update auf D2005 (da geht's)

ok, ich weiß, daß hilft nich wirklich weiter.

Ciao
Marco

Bernhard Geyer 25. Aug 2005 07:25

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Um halbwegs einfach damit in der IDE in den Pas-Files arbeiten zu können benötigst Du D2005.
Als Krücke kannst Du die einzelnen Zeichen per Order-Value ansprechen:

Delphi-Quellcode:
xLabel.Caption := WideChar(#$03BA);
In der Ausgabe 5.2003 der Zeitschrift "Der Entwickler" gibt es von mir einen Artikel zum Thema "Delphi und Unicode" (Titel: "We are a world")

skyware 25. Aug 2005 07:37

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Danke für Eure Antworten!

Da mir leider einzelne Zeichen nicht genügen und ich nicht auf D2005
wechseln will, bleibt mir wohl nur die Lösung mit dem Laden der Texte
aus einer Ressource Datei.

Danke! :thumb:

Bernhard Geyer 25. Aug 2005 07:54

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Mußt du den das grichische in den Sourcdateien haben?
Kannst Du nicht mit den deutschen Arbeiten un die Übersetzung mit GNU GetText durchführen lassen?

Olli 25. Aug 2005 09:00

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

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:

Zitat von Bernhard Geyer
Als Krücke kannst Du die einzelnen Zeichen per Order-Value ansprechen:
Delphi-Quellcode:
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:

Zitat von Olli
Zitat:

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.

jfheins 25. Aug 2005 09:12

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Bei Delphi 7 kommt
Zitat:

---------------------------
Fehler
---------------------------
!=V6>:.txt
---------------------------
OK
---------------------------
;)

Btw.: Was ist UTF-8 und UTF-16 ?

Olli 25. Aug 2005 09:18

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von jfheins
Btw.: Was ist UTF-8 und UTF-16 ?

http://www.unicode.org/faq/utf_bom.html und http://www.unicode.org/faq/ (wenn noch Fragen offen sind).

Bernhard Geyer 25. Aug 2005 09:26

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Für Άrabĩ habe ich WideChar($0386)+WideString('rab')+WideChar($0129) im Quellcode stehen - und es funktioniert.

Also geht es mit D6 + SP's

Olli 25. Aug 2005 09:36

Re: griechische Zeichen (Unicode) im Delphi Editor
 
Zitat:

Zitat von Bernhard Geyer
Für Άrabĩ habe ich WideChar($0386)+WideString('rab')+WideChar($0129) im Quellcode stehen - und es funktioniert.

Also geht es mit D6 + SP's

Delphi-Quellcode:
const MsgBoxText:WideString = WideChar(1057)+WideChar(1085)+WideChar(1110)+WideChar(1078)+WideChar(1086)+WideChar(1082)+'.txt';
Der hier kompiliert erst garnicht wegen "inkompatiblen Typen".
Delphi-Quellcode:
const MsgBoxText:WideString = WideChar($0386)+WideString('rab')+WideChar($0129);
Gibt mir eine wunderbare und nachvollziehbare Exception in einem Delphi-Package während des Kompilierens ...

Beides: D4


Alle Zeitangaben in WEZ +1. Es ist jetzt 10:01 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz