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 Wie kann ich Textausgabe um 90° drehen ? (https://www.delphipraxis.net/62035-wie-kann-ich-textausgabe-um-90%B0-drehen.html)

madina 30. Jan 2006 08:02


Wie kann ich Textausgabe um 90° drehen ?
 
Hallo,

wie kann ich bei TCanvas.TextOut(x, y, 'Hallo'); den Text z.B. "Hallo" um 90° in uhrzeigersinn oder umgekehrt gedreht ausgeben?

mfg

hanspeter 30. Jan 2006 08:13

Re: Wie kann ich Textausgabe um 90° drehen ?
 
Zitat:

Zitat von madina
Hallo,

wie kann ich bei TCanvas.TextOut(x, y, 'Hallo'); den Text z.B. "Hallo" um 90° in uhrzeigersinn oder umgekehrt gedreht ausgeben?

mfg

Winkel := 90; // Senkrechter Text

GetObject(TCanvas(Canvas).Font.Handle, SizeOf(LogRec), @LogRec);
LogRec.lfEscapement := Winkel * 10;
LogRec.lfOutPrecision := OUT_TT_ONLY_PRECIS;
LogRec.lfWeight:=Widht;
NewFont := CreateFontIndirect(LogRec);
OldFont := SelectObject(TCanvas(Canvas).Handle,NewFont);
TCanvas(Canvas).Brush.Style := bsSolid;
TCanvas(Canvas).Brush.Color:=Color;
TCanvas(Canvas).TextOut(SpaltePos+px0, ypos, buf);
NewFont := SelectObject(TCanvas(Canvas).Handle,OldFont);
DeleteObject(NewFont);

Garfield 30. Jan 2006 08:15

Re: Wie kann ich Textausgabe um 90° drehen ?
 
Das müsste das richtige sein!?

http://www.delphi-fundgrube.de/faq14.htm#topic1405 bzw http://www.delphipraxis.net/internal...ct.php?t=17910

madina 31. Jan 2006 08:14

Re: Wie kann ich Textausgabe um 90° drehen ?
 
Hallo,

ich habe eine einfache Lösung gefunden mit einer Zeile:

SelectObject(Canvas.Handle, CreateFont(40, 0, 2700, 0, fw_normal, 0, 0, 0, 1, oh_tt_precis, $10, 2, 4, 'Arial'));
Canvas.TextOut(x, y, 'Hallo');


nur dabei weiß ich nicht, ob nachdem drehen die Fonthöhe und Breite sich auch ändert dh HöheHoriz, BreiteHoriz sich drehen zu HöheVertikal und BreiteVertikal??

mfg

Muetze1 31. Jan 2006 08:19

Re: Wie kann ich Textausgabe um 90° drehen ?
 
Aber gegenüber hanspeters Code hast du ein Resourcenleck. Du gibst den alten Font oder den neuen Font nicht wieder frei. Somit kann ich dir den Code von hanspeter ans Herz legen - den kannst du dann auch mehrfach aufrufen ohne das es später zu einem Absturz wegen Resourcenmangel kommt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:44 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