Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Label auf QuickRep um 90° drehen (https://www.delphipraxis.net/52009-label-auf-quickrep-um-90%B0-drehen.html)

TheMiller 22. Aug 2005 16:19


Label auf QuickRep um 90° drehen
 
Hallo,

ich habe ein Problem: Ich muss ein Label auf dem QuickReport um 90° drehen. Funktioniert das? Wenn ja - wie?
Hintergrund: Der BarCodeDrucker druckt nur lengs. Deshalb habe ich den BarCode (erfolgreich) um 90° gedreht. Nur das Label müsste noch gedreht werden.

Danke im Voraus

omata 22. Aug 2005 18:58

Re: Label auf QuickRep um 90° drehen
 
Moin,

schau mal hier und freue dich...

MfG
Thorsten

TheMiller 22. Aug 2005 19:01

Re: Label auf QuickRep um 90° drehen
 
Hi,

tut mir echt verdammt leid, aber ich habe die Lösung schon im EDH gefunden. Und, wenn ich das so sagen darf, ohne dich zu verletzen, viel einfacher für meine Bedürfnisse.

Sorry, aber trotzdem danke!

Union 22. Aug 2005 19:03

Re: Label auf QuickRep um 90° drehen
 
Zitat:

Zitat von DJ-SPM
Hi,

tut mir echt verdammt leid, aber ich habe die Lösung schon im EDH gefunden. Und, wenn ich das so sagen darf, ohne dich zu verletzen, viel einfacher für meine Bedürfnisse.

Sorry, aber trotzdem danke!

Mich würde diese Lösung auch interessieren.

TheMiller 22. Aug 2005 20:34

Re: Label auf QuickRep um 90° drehen
 
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 'Textdrehung' in 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!

bigg 22. Aug 2005 20:59

Re: Label auf QuickRep um 90° drehen
 
Aber erstmal posten und spammen. :roll:

omata 22. Aug 2005 22:24

Re: Label auf QuickRep um 90° drehen
 
@DJ-SPM:

Ja, ist doch schön das du dir selber helfen konntest.

Es ist auch schön, dass dir diese Lösung reicht. Ich habe auch mal so rumgespielt und bin mit dem Ergebnis leider nicht zufrieden. Das liegt aber daran, dass ich diese gedrehte Schrift in PDF-Dokumenten brauchte. Wenn man dort deine Variante einsetzt und das dann mal ein bißchen heranzoomt, sieht deine Variante leider sehr schlecht aus.

Bei der Komponente, auf die ich verwiesen habe ist das heranzoomen bis 6400% kein Problem.
Also, schön das du zufrieden bist.

MfG
Thorsten

TheMiller 22. Aug 2005 23:53

Re: Label auf QuickRep um 90° drehen
 
Naja, ich glaube, dass das heranzoomen auf 6400% bei BarCodeLabels, die auf Aktendeckeln kleben, irrelevant ist!

Wollte nur eine gedrehtes Label, um das Rubrum noch zu definieren und unter dem BarCode anzeigen und drucken zu lassen.

omata 23. Aug 2005 00:04

Re: Label auf QuickRep um 90° drehen
 
Ja, schon klar --- das 6400% das muss jetzt breitgetreten werden.

Ne, aber ich wollte damit nur zum Ausdruck bringen, dass die Komponente (so viel Aufwand ist sie nun auch wieder nicht) einen entscheidenen Vorteil bietet.
Und zwar, dass der gedrehte Text wirklich ein Text (im Sinne von TEXT) ist und nicht etwas gezeichnetes.

Das das beim Ausdrucken auf Papier nicht weiter wichtig ist ist klar. Aber eben beim Drucken als PDF ist das schon ein entscheidener Vorteil.

Ich wollte das nur mal klar hervorheben, damit andere auch die Vor- und Nachteile sehen.

MfG
Thorsten

TheMiller 23. Aug 2005 00:18

Re: Label auf QuickRep um 90° drehen
 
Ist ja okay. Wollte dir da jetzt nicht auf den Schlips treten :wink:

Wollte halt nur mal sagen, dass es für meinen Zweck genau das ist, was ich wollte!

Gute N8!


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:42 Uhr.
Seite 1 von 2  1 2      

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