Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Sonderzeichen und Text auf Canvas schreiben (https://www.delphipraxis.net/124235-sonderzeichen-und-text-auf-canvas-schreiben.html)

stahli 17. Nov 2008 11:25


Sonderzeichen und Text auf Canvas schreiben
 
Hallo alle,

ich möchte folgenden Text auf einen Canvas schreiben und umrahmen:

->G1

wobei der Pfeil möglichst ein "übliches" Sonderzeichen sein soll.

Bisher habe ich das ohne das "G" so gemacht:

Delphi-Quellcode:
with Canvas do
begin
  Font.Name := 'Symbol';
  DrawText(Handle, PChar(Char(174) + IntToStr(No)), -1, Rect, ...);
  ...
und die Rahmengröße mit TextWidth und TextHeight ermittelt.

Das "G" lässt sich aber mit dem Symbolzeichensatz nicht darstellen.

Welche Möglichkeit gibt es, solche "gemischten Texte" darzustellen?
Kann man auch hier die benötigte Breite und Höhe ermitteln?
Gibt es auch eine Zeichenfunktion für RTF-Text (fett, kursiv, unterstrichen wechselnd)?


Danke Stahli

SirThornberry 17. Nov 2008 11:54

Re: Sonderzeichen und Text auf Canvas schreiben
 
Wenn das G nicht im Symbolschriftsatz ist könntest du einfach den Schriftsatz wechseln.

stahli 17. Nov 2008 11:58

Re: Sonderzeichen und Text auf Canvas schreiben
 
ich habe keinen Schriftsatz gefunden, der Pfeilsymbole, Ziffern UND Buchstaben enthält...

EDIT: Ach ich sehe gerade, man darf ja anscheinend jetzt mehr als bis 255... Ich schaue es mir mal heute Abend näher an...

Reinhard Kern 17. Nov 2008 12:25

Re: Sonderzeichen und Text auf Canvas schreiben
 
Zitat:

Zitat von stahli
...Welche Möglichkeit gibt es, solche "gemischten Texte" darzustellen?

Hallo,

grundsätzlich gilt der Font wie er ist für die folgenden Textoperationen - ändert sich IRGENDWAS (Font, Grösse, Fett, Kursiv, Farbe, Ausrichtung...) so muss nach der Änderung der betreffende Text mit einer neuen Funktion ausgegeben werden. Also für ein fettes Wort in normalem Text braucht man also 3 mal TextOut o.ä. mit normal - fett - normal. Der Anfang des nächsten Textes ist dabei der Endpunkt des vorherigen.

Gruss Reinhard

stahli 17. Nov 2008 18:06

Re: Sonderzeichen und Text auf Canvas schreiben
 
@Reinhard:
Das hatte ich befürchtet - und gehofft, dass es vielleicht doch eine fertige Funktion dafür gibt...

@all:
Ich musste nur auf WideChar-Funktionen umstellen:
Delphi-Quellcode:
with Canvas do
begin
  Font.Name := 'Arial';
  DrawTextW(Handle, PWideChar(WideChar($2192) + 'G' + IntToStr(No)), -1, Rect, ...);
  ...
Stahli


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:07 Uhr.

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