![]() |
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 |
Re: Wie kann ich Textausgabe um 90° drehen ?
Zitat:
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); |
Re: Wie kann ich Textausgabe um 90° drehen ?
Das müsste das richtige sein!?
![]() ![]() |
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 |
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 15:57 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