Entwickler-Ecke
Sonstiges (Delphi) - Unicode TEdit TCanvas
F34r0fTh3D4rk - Fr 09.11.07 13:57
Titel: Unicode TEdit TCanvas
Hallo,
Ich möchte es meinem Programm ermöglichen, Unicode Zeichen (♠♣♥♦) zu nutzen und zwar in einem TEdit und
möchte diese dann entweder mit Write in eine Datei schreiben, oder auf ein Canvas zeichnen.
Was brauche ich dafür ?
mfg
F34r0fTh3D4rk - Fr 09.11.07 16:18
hi,
danke, mit den controls, sowie widestring und widechar kann ich jetzt programmintern mit unicode charakteren arbeiten und diese auch in den controls benutzen. Allerdings erhalte ich, wenn ich diese auf ein TCanvas zeichnen oder in eine Datei (html) schreiben will, immernoch Fragezeichen. Wie löse ich dieses Problem ?
mfg
Gausi - Fr 09.11.07 16:25
TCanvas kann kein Unicode, dafür musst du das TNTCanvas nehmen ;-). Als Paintbox dann die TntPaintbox, als Image nen TntImage usw. Quasi vor allem aus der VCL ein TNT vorsetzen. Text schreiben geht dann nicht mit TextOut, sondern mit WideCanvasTextOut usw. usf. Die meisten Delphi-Funktionen nehmen halt nur Strings, und wenn man denen einen Widestring übergibt, wird automatisch konvertiert, wobei dann ??? rauskommen.
Wie das mit html ist, weiß ich nicht. Damit kenne ich mich nicht so aus :nixweiss:. Geht das über UTF-8-Kodierung? Keine Ahnung.
F34r0fTh3D4rk - Fr 09.11.07 16:48
ja, allerdings werden die zeichen schon als Fragezeichen gespeichert, also liegts an Write, gibt es TntWrite ? ;)
Ich benutze ein TBitmap und dessen Canvas zum zeichnen, wenn ich jetzt TNTCanvas nehme, wie speichere ich dann das bild ?
Mit
Delphi-Quelltext
1:
| DrawTextW(OBMP.Canvas.Handle, @achar, 1, aRect, DT_CALCRECT); |
klappts auch net so wirklich :(
mfg
F34r0fTh3D4rk - So 11.11.07 11:32
mir würde schon reichen, wenn es klappen würde einen Widechar mittels write (o.Ä.) in eine Datei zu schreiben.
mfg
Gausi - So 11.11.07 11:40
Ich kenne Write nicht so gut und weiß nicht, obs da WriteW oder WideWrite oder was ähnliches gibt. Mit Hilfe von Streams lässt sich das aber auf jeden Fall erledigen. Im Zweifel könnte
Ansonsten könnte man noch den Umweg über TTntStringlist nehmen, aber das dürfte nicht das optimale sein.
Aber bist du dir sicher, dass du ne gültige html-Datei erzeugst, wenn da WideStrings drin stehen? Das würde ich nämlich stark anzweifeln...
F34r0fTh3D4rk - So 11.11.07 11:43
ich kann mir die html datei ja auch im editor angucken und da sehe ich, dass dort ebenfalls keine unicode zeichen sind. Außerdem habe ich Unicode in dem Dokument aktiviert.
mfg
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!