Autor Beitrag
GreyGoo
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 14.06.10 14:31 
Hi,
Ich möchte mit Delphi2010 Unicode Symbolzeichen darstellen. Aber die Zeichen erscheinen in TEdit- oder TMemo-Komponenten auf der Seite liegend, d.h. um 90° gedreht. Ich verwende einen Unicode Font: @Arial Unicode MS. Es handelt sich um Zeichen wie zB. ③Ⓐ♘♫ (Spielkartensymbole,Eingekreiste Buchstaben und Zahlen, Dingbats, Unicodebereiche 9312-9471, 9728-9983, 9984-10175). Die Zeichen werden in der Windows-Zeichentabelle richtig dargestellt. Wenn ich sie aber über die Zwischenablage aus der Zeichentabelle in ein TEdit-Feld oder TLabel, TMemo, etc, kopiere, so erscheien sie um 90° gedreht auf der Seite liegend. (siehe beigefügtes Bild). Auch die Windows-API Function Windows.GetGlyphOutline liefert die Vektoren der Zeichen um 90° gedreht zurück. Andere Symbolzeichen, zb Pfeilsymbole (Unicodebereich 8592-8703), werden richtig dargestellt.
Weiss jemand woran es liegt und wie sie richtig dargestellt werden können ?
Einloggen, um Attachments anzusehen!
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mo 14.06.10 21:38 
Versuchs mal mit "Arial Unicode MS" statt "@Arial Unicode MS"
GreyGoo Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 14.06.10 22:14 
Was ist der Unterschied zwischen '@Arial Unicode MS' und 'Arial Unicode MS' und wo könnte ich 'Arial Unicode MS' runterladen ?
Am Font kann es aber nicht liegen, da mein Font (@Arial Unicode MS) ja in der Windows Zeichentabelle richtig dargestellt wird.
Noch einmal:
Der Fehler tritt nur in Delphi-Komponenten auf, in anderen Programmen, zb auf dieser Forum-Seite hier, werden sie richtig dargestellt: ①②③ⒶⒷⒸ♘♕☾
delfiphan
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 2684
Erhaltene Danke: 32



BeitragVerfasst: Mo 14.06.10 23:42 
Arial Unicode MS wird mit Microsoft Office mitgeliefert. Ich rate dir davon ab, einfach Fonts mit deinem Programm mitzukopieren. Für einen Font wie Arial Unicode MS müsstest du je nach dem mehrere Tausend Euro Lizenzgebühren zahlen.
GreyGoo Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Di 15.06.10 15:38 
Bei dem von mir verwendeten Font handelt es sich um den original Microsoft Unicode Font aus dem Office Paket, der bis vor einiger Zeit noch als Free-Download erhältlich war (Datei: ARIALUNI.ttf, Ver:1.01 vom 18.11.2002). Und wie schon gesagt, das Problem liegt nicht am Font, sondern ganz allgemein an der Darstellung bestimmter Symbolzeichen in VCL-Komponenten. Ausserdem soll auch nicht der Font mit einmen Programm ausgeliefert weden, sondern es geht ganz allgemein um die Darstellung von Unicode Symbolzeichen in Delphi unabgängig von einem speziellen Font !
Es würde mich interssieren, ob Du den Effekt nachvollziehen kannst. Einfach mal die Windows Zeichentabelle öffnen, einen Unicode Font auswählen, der Sonderzeichen enthält, dann zb ein Spielkartensymbol auswählen (zb Zeichen ♘ #2685 aus dem Unterbereich 'Symbole und Dingbats') und in ein TEdit kopieren. Und nicht vergessen den Unicode Font auch im TEdit einzustellen, Codepage Einstellung spielt dabei keine Rolle.
Ich weiss nicht ob Du die Jedi-Komponenten kennst, da gibt es eine Komponente, TJVCharMap, die das gleiche macht, wie die Windows Zeichentabelle; auch in dieser Komponente werden manche Symbolzeichen falsch dargestellt, zumindest bei mir auf dem Rechner (XP SP2).