Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi UTF-8 mit GR32 zeichnen? (https://www.delphipraxis.net/73351-utf-8-mit-gr32-zeichnen.html)

mkinzler 16. Jul 2006 20:58

Re: UTF-8 mit GR32 zeichnen?
 
Du kannst doch die Image32-Komponenet verwenden, anstatt DrawText halt WideCanvasTextOut verwenden.

Ydobon 16. Jul 2006 21:00

Re: UTF-8 mit GR32 zeichnen?
 
Ich kenne die Komponente nicht, wenn sie aber wie die ursprünglichen von Delphi arbeitet, wird der WideString einfach zu einem AnsiString gemacht und kann daher nicht richtig dargestellt werden. Obwohl der Name image32 eigentlich etwas anderes suggeriert. Was nimmt es denn als Parameter String oder WideString?

wgDefault bei ScriptGetFontProperties gibt die Ersetzungsglyphe an.

alienous 16. Jul 2006 21:05

Re: UTF-8 mit GR32 zeichnen?
 
aber beim textout kannich doch kein bereich (Rect) übergeben, in das dann der text korrekt umgebrochen wird oder?

habe nämlich je nachdem was der benutzer auswählt, verschiedene bereiche, in die der text dann reingesetzt wird, auch die textgröße wird angepasst, dh wenn jemand 3wörter reinschreibt, wirds riesig gezeichnet, wenn jemand aber ein roman da reinschreibt, wirds so klein gezeichnet, das das letze wort ganz unten noch zu lesen ist...

und textout hat sowas ja nicht :(

die methode DrawText ist aber eine aus der winapi soweit ich des weiß!!! das verwundert mich ja noch mehr! aber als textparameter benötigt es PChar, kein PWideChar.

mkinzler 16. Jul 2006 21:09

Re: UTF-8 mit GR32 zeichnen?
 
Dann verwende WideCanvasTextRect

Ydobon 16. Jul 2006 21:13

Re: UTF-8 mit GR32 zeichnen?
 
Mach ein W ran. Die Api-Funktionen gibt es als Ansi- und Widestringvariante. DrawTextW ist für Unicode zuständig.
Zitat:

Implemented as Unicode and ANSI versions on Windows NT/2000/XP. Also supported by Microsoft Layer for Unicode.

alienous 16. Jul 2006 21:26

Re: UTF-8 mit GR32 zeichnen?
 
Zitat:

Zitat von Ydobon
Mach ein W ran. Die Api-Funktionen gibt es als Ansi- und Widestringvariante. DrawTextW ist für Unicode zuständig.
Zitat:

Implemented as Unicode and ANSI versions on Windows NT/2000/XP. Also supported by Microsoft Layer for Unicode.

:bounce1: Ydobon, du hast mich glücklich gemacht, :D ich danke dir! diese methode hat mir allerdings die hilfe verschwiegen! erst jetzt habe ich in gaanz kleiner schrift irgendwo in der mitte bemekrt, das da was von unicode steht, und drawtextW :)

Zitat:

Zitat von mkinzler
Dann verwende WideCanvasTextRect

wieso ist das nicht in der hilfe eingetragen? hab nix dazu gefunden!

Zitat:

Zitat von Ydobon
wgDefault bei ScriptGetFontProperties gibt die Ersetzungsglyphe an.

wo genau kann ich dieses einstellen? :gruebel: edit: hat sich erledigt :D aber fehlende zeichen aus einer anderen schrift kann man damit nicht setzen :(

mkinzler 16. Jul 2006 21:31

Re: UTF-8 mit GR32 zeichnen?
 
Zitat:

mkinzler hat folgendes geschrieben:
Dann verwende WideCanvasTextRect

wieso ist das nicht in der hilfe eingetragen? hab nix dazu gefunden!
Hab in TntGraphics.pas nachgeschaut.

alienous 16. Jul 2006 21:52

Re: UTF-8 mit GR32 zeichnen?
 
achso, ja ok, aber die tnt imagekompo is ja quasi eine normale imagekompo, und liefert seeehr viel schlechtere qualität wie es die graphics32 kompo tut, vorallem beim resizen.

aber es funktioniert ja schon ganz gut, ich möchte mich bei euch bedanken :)

mkinzler 16. Jul 2006 21:56

Re: UTF-8 mit GR32 zeichnen?
 
Zitat:

achso, ja ok, aber die tnt imagekompo is ja quasi eine normale imagekompo, und liefert seeehr viel schlechtere qualität wie es die graphics32 kompo tut, vorallem beim resizen.
Aber die Funktionen von TNT können ja auch auf den canvas der Image32-Kompo angewendet werden.

Ydobon 16. Jul 2006 21:59

Re: UTF-8 mit GR32 zeichnen?
 
Zitat:

Zitat von alienous
diese methode hat mir allerdings die hilfe verschwiegen! erst jetzt habe ich in gaanz kleiner schrift irgendwo in der mitte bemekrt, das da was von unicode steht, und drawtextW :)

Ist einfach so üblich. In der Hilfe oder MSDN wird nur allgemein die Funktion erläutert. Im Text wird dann, wenn relevant, auf die Unterschiede eingegangen.
Das A für Ansi oder W für WideString muss man sich dann halt selbst dazu denken. Die Delphi Units verwenden ohne anhängenden Buchstaben (oder sogar fehlerhaft mit W) einfach die A-Version.

Die Installation der Tnt-Controls würde ich jedenfalls auch sehr empfehlen, das macht vieles deutlich einfacher. Allerdings stehen einige interessante Funktionen nicht automatisch durch die Komponenten zur Verfügung, da sie für diese nur intern verwendet werden. TntGraphics (WideCanvas...) musst du also direkt angeben, um deren Funktionen benutzen zu können. TntSysUtils ist z.B. für jemanden, der mit Unicode arbeitet ein richtiger Schatz.

Mal so nebenbei, ich habe schon gesucht, aber die von dir benutzten Komponenten nicht gefunden. Hast du dafür eine Adresse? Vielleicht mal nützlich.


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:45 Uhr.
Seite 2 von 3     12 3      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz