![]() |
Re: Panelinhalt ausdrucken
niao, am besten Du schilderst uns erstmal, was Du genau vor hast! Am einfachsten wäre es, Grafiken, Text usw. auf dem Canvas zu zeichnen und dieses dann auszudrucken. Beispiele hierzu finden sich genügend bei direkter Suche.
RoGa |
Re: Panelinhalt ausdrucken
Hallo RoGa,
ich habe auf einem Panel Komponenten (Images, Edit, etc.). Ich möchte dem Anwender die Möglichkeit geben, das Panel im ganzen (auch nicht sichtbare Komponenten) auf einem Drucker mit Vorschau ausgeben zu können. Ich hoffe das reicht als Erläuterung. Vielen Dank niao |
Re: Panelinhalt ausdrucken
Hallo Roga,
habe folgendes probiert: var bmp: TBitmap; begin bmp := TBitmap.Create; try aPanel.PaintTo(bmp.Canvas,0,0); bmp.SaveToFile('c:\Downloads\Test.BMP'); finally bmp.Free; end; hier ist das Bild aber leer. Wenn ich als Bitmapgröße die Breite und Höhe des Panels angebe, erhalte ich nur die sichtbaren komponenten in dem Bitmap. Viele Grüße niao |
Re: Panelinhalt ausdrucken
Du kriegst so oder so nur die sichtbaren Komponenten raus. Du könntest vielleicht die unsichtbaren Komponenten kurzfrisitig anzeigen und wieder verstecken.. halt nicht die optimale Lösung aber es würde funktionieren.
|
Re: Panelinhalt ausdrucken
Das halte ich nicht für optimal.
Gibt es nicht eine Möglichkeit alle Komponenten auf ein Image zu bringen oder zumindestens zu drucken? |
Re: Panelinhalt ausdrucken
Nimm doch einfach ein TImage für die Vorschau! Gleiche Größe wie das Panel und dann zeichnest Du die Bilder und Texte an die entsprechenden Positionen. Evt. in eine Scrollbox unterbringen.
Delphi-Quellcode:
Die Vorschau würde ich allerdings in ein neues Fenster unterbringen.
// Zeichenfläche in Farbe des Panels
Image1.Canvas.Brush.Style := bsSolid; Image1.Canvas.Brush.Color := Panel1.Color; Image1.Canvas.FillRect(Image1.ClipRect); Image1.Canvas.Brush.Style := bsClear; // z.B. Textausgabe Image1.Canvas.TextOut(x, y, 'Text'); Vielleicht hilft Dir meine kleine Anregung. Viel Spaß RoGa |
Re: Panelinhalt ausdrucken
|
Re: Panelinhalt ausdrucken
Zitat:
Delphi-Quellcode:
for n := 0 to Form1.ComponentCount -1 do
begin if not (Form1.Components[n] as TControl).Visible then //.. position auslesen, zeichnen.. end; |
Re: Panelinhalt ausdrucken
Da gibt es aber ein Problem mit auslesen!
Wenn die Komponente ein Label ist tut sich da nichts. Viele Grüße niao |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 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