2009-05-08 7 views
4

Ich habe eine Reihe von Delphi-Formularen, in denen wir einige Sonderzeichen verwenden - das 'Grad'-Symbol und das' Ohm'-Symbol. Diese Zeichen werden in Beschriftungsbeschriftungen verwendet, die in der DFM-Datei gespeichert sind und nicht zur Laufzeit generiert oder geändert werden. Als wir diese Formen zum ersten Mal entwarfen, war das Grad-Symbol einfach, weil es im Ansi-Zeichensatz (Code 176) war, aber das Ohm-Symbol brauchte den griechischen Zeichensatz mit Code 217. Zum Glück (wir fanden) alle anderen Zeichen, die wir hatten Notwendigkeit (Buchstaben und Zahlen) funktionieren gut mit dem griechischen Zeichensatz.Delphi-DFMs mit Sonderzeichen nach D2009 migrieren

Jetzt möchten wir, dass diese Formulare in D2009 gleich aussehen. Das Grad-Symbol erscheint gut, aber das Ohm-Symbol zeigt "Ù", weil der dfm-Text "Caption = 'In Ohm eingegeben - 1234' # 217" ist. Ich finde, dass ich das Formular bearbeiten kann, um das richtige Unicode-Ohm-Symbol (8486) zu setzen, aber natürlich geht das mit einem "?" wenn ich zurück zur D7 gehe. Idealerweise möchte ich D2009 mitteilen, weiterhin den griechischen Zeichensatz mit dem Formular zu verwenden, so dass # 217 in der dfm dem Ohm-Symbol zugeordnet wird. Ist das möglich? Es scheint, die Schriftart.Charset-Einstellung zu ignorieren, die "GREEK_CHARSET" ist. Ich habe eine schmutzige Art entdeckt, dieses Problem zu lösen, indem ich alle Komponenten durchspiele und "StringReplace (S, '', OhmsChar, [rfReplaceAll])" mache, aber das ist schrecklich und sicherlich muss es einen besseren Weg geben?

Danke, Brian

Antwort

2

Die sauberste Art, wie ich tun fanden diese diese „speziellen“ Bildunterschriften in Code zu füllen war, wo man IFDEFs bei Bedarf nutzen können.

3

Wie bereits von Bruce erwähnt, können Sie den Code verwenden, um diese Werte anzugeben. Ich gebe nur ein Beispiel und einige zusätzliche Informationen.

Ich empfehle, Ressourcenzeichenfolgen und nicht Const für übersetzbaren Text zu verwenden, da die meisten Übersetzungstools auf Ressourcen arbeiten.

+0

+1 für Ressourcen-Strings. Sie sind der sauberste Weg, dies zu handhaben und spätere Übersetzungen mit vorhandenen Tools zu einem Kinderspiel zu machen. – skamradt

+0

Dies ist eine gute Lösung für Code, aber wie hilft das bei den DFM-Dateien? Danke –

4

Ähnliches Problem, das ich hatte, wurde mit dxgettext gelöst. Anstelle von problematischen Bildunterschriften habe ich nur saubere Ascii (z. B. "In Ohm eingegeben") verwendet und sie dann in Po-Dateien übersetzt, die in EXE als Ressourcen eingebettet sind.

BTW, dxgettext ist eine nette Möglichkeit, um Übersetzungen in die App hinzuzufügen, mit einem sehr geringen Overhead und Standard-Formaten (po/mo) mit guten 3p-Editoren (poEdit). Funktioniert mit D7 und D2009.

+0

Interessant, danke! –