AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Label auf QuickRep um 90° drehen

Ein Thema von TheMiller · begonnen am 22. Aug 2005 · letzter Beitrag vom 23. Aug 2005
 
Benutzerbild von TheMiller
TheMiller

Registriert seit: 19. Mai 2003
Ort: Gründau
2.480 Beiträge
 
Delphi XE7 Architect
 
#5

Re: Label auf QuickRep um 90° drehen

  Alt 22. Aug 2005, 20:34
Zitat:
Mit dem TCanvas-Objekt kann man normalerweise keinen gedrehten Text ausgeben. In Verbindung mit TLogFont ist dies aber dennoch möglich.

Folgende Prozedur erwartet ein TCanvas-Objekt, die Koordinaten des linken, oberen Punktes des Textes (es von einem horizontalen Text ausgegangen), den Text selbst als String und den Grad der Drehung (z.B. 0=horizontal, 450=diagonal, 900=senkrecht, 1800=kopfüber...).

Delphi-Quellcode:
procedure TextOutAngle(const Canvas: TCanvas; X, Y: Integer; const AText: String; AAngle: Integer);
var
hCurFont: HFONT;
LogFont: TLogFont;
begin
with Canvas do
begin
  hCurFont := Font.Handle;
  try
    GetObject(Font.Handle, SizeOf(LogFont), @LogFont);
    LogFont.lfEscapement := AAngle;
    LogFont.lfOrientation := AAngle;
  
    Font.Handle: = CreateFontIndirect(LogFont);
    try
      TextOut(X, Y, AText);
    finally
      DeleteObject(Font.Handle);
    end;
  finally
    Font.Handle := hCurFont;
  end;
end;
end;
Folgendes Beispiel gibt in einer TPaintbox (Ereignis OnPaint) den Text 'Textdrehungin einem 45°-Winkel aus:

procedure TForm1.PaintBox1Paint(Sender: TObject);
begin
 Paintbox1.Canvas.Font.Name:='Arial';
 Paintbox1.Canvas.Font.Size:=24;
 TextOutAngle(Paintbox1.Canvas, 10, 90, 'Textdrehung', 450);
end;
Es werden die Schrifteinstellungen des übergebenen Canvas-Objekt übernommen. Für Drehungen können nur TrueType-Schriftarten verwendet werden.

Möchten Sie mehrere gedrehte Texte ausgeben, wird bei jedem Aufruf von TextOutAngle ein neuer Font erzeugt. Sie können die Ausgabe beschleunigen, wenn Sie nach einmaliger Erzeugung des Fonts die gewünschten Texte ausgeben. Orientieren Sie sich dabei an der Prozedur TextOutAngle.
ORIGINAL AUS DEM EDH!
Bisheriger Nutzername "DJ-SPM"
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:45 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