![]() |
Text vertikal auf Canvas ausgeben
Hallo,
bestimmt gibt es dieses Thema hier schon, mit fehlt aber das passende Stichwort, jedenfalls habe ich nix gefunden. Wie bekomme ich einen Text 90° hochkant auf einem Canvas ausgegeben? Danke, Messie |
Re: Text vertikal auf Canvas ausgeben
Such mal bei Torry nach Rotate Text. Im Prinzip musst Du Dir mit der Windows-API einen neuen Font anlegen und damit dann zeichnen.
|
Re: Text vertikal auf Canvas ausgeben
Hi Messie,
hatte das auch mal gebraucht und kurz in einem alten Source nachgesehen. Hier ein Auschnitt
Delphi-Quellcode:
Habe es nur auf die schnelle den Canvas auf Form1 geändert und das wichtigste rauskopiert.
procedure TForm1.Button1Click(Sender: TObject);
Var LF : TLogFont; TF : TFont; begin Form1.Canvas.Font.Color := clBlack; Form1.Canvas.Font.Name :='Arial'; TF := TFont.Create; TF.Assign(Form1.Canvas.Font); GetObject(tf.Handle, sizeof(LF), @LF); LF.lfEscapement := 900; LF.lfOrientation := 900; TF.Handle := CreateFontIndirect(LF); Form1.Canvas.Font.Assign(TF); TF := TFont.Create; Form1.Canvas.TextOut(100,100,'Hallo'); tf.free; end; Nicht getestet sollte aber funktionieren. |
Re: Text vertikal auf Canvas ausgeben
Danke, das ist super, die LogFont-Struktur kann man sicher häufiger mal gebrauchen.
lfOrientation scheint nicht zu funktionieren, so wie ich es im SDK verstanden habe, sollten sich damit die Zeichen noch einzeln gegen ihre Basis drehen lassen. Grüße, Messie |
Re: Text vertikal auf Canvas ausgeben
also bei mir funzt das 100%:
Zitat:
|
Re: Text vertikal auf Canvas ausgeben
man sollte dabei beachten das diese Variante nur mit TrueType-Fonts ordentlich funktioniert. Andere lassen sich teilweise nicht frei drehen.
Für den fall wäre eine alternative den Text normal auf ein Zeischenbild zu schreiben und dieses dann zu drehen. |
Re: Text vertikal auf Canvas ausgeben
Zitat:
Grüße, Messie EDIT: Hmpf, wieder keine Mitteilung, daß neue Posts vorhanden sind. Übrigens benutze ich das Beispiel oben mit Arial... |
Re: Text vertikal auf Canvas ausgeben
Liste der Anhänge anzeigen (Anzahl: 2)
Habe mein Beispiel nun selbst getestet 1:1 in ein neues Projekt kopiert.
Funktioniert wie gewünscht Bilder im Anhang. |
Re: Text vertikal auf Canvas ausgeben
Ja, so hatte ich das auch. Da kannst Du aber lfOrientation rauslöschen oder auf beliebige Werte setzen, das sieht immer so aus. Ich hatte aus der SDK-Hilfe verstanden, daß ich die Buchstaben mit lfOrientation selbst nochmal rotieren kann.
Aber für das was ich brauchte ist Dein Beispiel super. Der Rest ist Spielerei. Grüße, Messie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:50 Uhr. |
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