Thema: Delphi UTF-8 mit GR32 zeichnen?

Einzelnen Beitrag anzeigen

jus

Registriert seit: 22. Jan 2005
344 Beiträge
 
Delphi 2007 Professional
 
#5

Re: UTF-8 im Programm darstellen?

  Alt 16. Jul 2006, 21:09
Zitat von alienous:
hmm habs jetz versucht im image32 mit textout... da kommen auch nur fragezeichen bei raus... die umlaute sind allerdings ok.

woran kann das liegen?

Delphi-Quellcode:
image32v.canvas.Font.Name := 'Verdana';
Image32V.Canvas.TextOut(10,10,utf8decode(_myrow[1]));
wobei Verdana mit russischen zeichen in word scheinbar klarkommt, Tahoma laut word auch, aber nicht in dem programm.

gibt es da tipps? binn am verzweifeln eine provisorische ausgabe über php klappt auch einwandfrei im utf8 format.


danke
Leider sind die VCL Canvas Methoden wie Canvas.TextOut auch nicht unicodefähig. Wenn es unbedingt per TextOut hingezeichnet werden muß, dann sollte sicherlich die Windows API Funktion "TextOutW" funktionieren. Wenn ich mich richtig erinnere, sind sogar die Canvas-Funktionen von den Tnt Komponenten nicht unicodefähig.

Eigentlich ist es nicht viel anders, wenn du die API Funktion TextOutW verwendest. Du mußt nur halt noch das dazugehörige Handle mitübergeben.
Kurzes Beispiel:
Delphi-Quellcode:
var
  ws: WideString;
begin
  //..
  ws:=utf8decode(_myrow[1]);
  TextOutW(Image32V.Canvas.Handle,xpos,ypos,PWideChar(ws),length(ws));
  //..
end;
Grüsse,
jus

P.S.: ich habe das Programm so auf die schnelle hingetippt, bitte schlagen, wenn es welche Fehler enthält
  Mit Zitat antworten Zitat