Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Panelinhalt ausdrucken (https://www.delphipraxis.net/114509-panelinhalt-ausdrucken.html)

roga 28. Dez 2008 19:33

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

niao 28. Dez 2008 19:37

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

niao 28. Dez 2008 19:42

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

ErazerZ 28. Dez 2008 19:54

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.

niao 28. Dez 2008 19:58

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?

roga 28. Dez 2008 20:02

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:
// 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');
Die Vorschau würde ich allerdings in ein neues Fenster unterbringen.

Vielleicht hilft Dir meine kleine Anregung. Viel Spaß

RoGa

Matze 28. Dez 2008 20:06

Re: Panelinhalt ausdrucken
 
Hier im Forum suchenPanel drucken -> Ist das nichts?

ErazerZ 28. Dez 2008 20:07

Re: Panelinhalt ausdrucken
 
Zitat:

Zitat von niao
Das halte ich nicht für optimal.
Gibt es nicht eine Möglichkeit alle Komponenten auf ein Image zu bringen oder zumindestens zu drucken?

Alle Komponente in einem Panel durchlaufen und selber zeichnen z.b.
Delphi-Quellcode:
  for n := 0 to Form1.ComponentCount -1 do
  begin
    if not (Form1.Components[n] as TControl).Visible then
      //.. position auslesen, zeichnen..
  end;

niao 28. Dez 2008 20:22

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 12:04 Uhr.
Seite 2 von 2     12   

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