| Autor |
Beitrag |
F34r0fTh3D4rk
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: Fr 09.11.07 13:57
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
|
|
Gausi
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: Fr 09.11.07 14:35
Dafür sind z.B. die TNT Unicode Controls da. Sind seit kurzem kommerziell, die alten Fassungen gibts aber nach wie vor, z.B. hier.
_________________ We are, we were and will not be.
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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  . Geht das über UTF-8-Kodierung? Keine Ahnung.
_________________ We are, we were and will not be.
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
      
Beiträge: 8554
Erhaltene Danke: 480
Windows 7, Windows 10
D7 PE, Delphi XE3 Prof, Delphi 10.3 CE
|
Verfasst: 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...
_________________ We are, we were and will not be.
|
|
F34r0fTh3D4rk 
      
Beiträge: 5284
Erhaltene Danke: 27
Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
|
Verfasst: 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
|
|
|