Delphi-PRAXiS

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)

MrMyagi 26. Mai 2008 17:12


Panelinhalt ausdrucken
 
Moin,
wie kann ich den Inhalt eines Panels auf eine Din A4 Seite drucken lassen?

mfG, Nico

Die Muhkuh 26. Mai 2008 17:13

Re: Panelinhalt ausdrucken
 
Hi,

Du könntest ein Screenshot des Panels machen und das ausdrucken.

MrMyagi 26. Mai 2008 17:15

Re: Panelinhalt ausdrucken
 
Hmmmmm :thumb: , das ist wirklich ne gute Idee,
allerdings wie setze ich das am betsen um?

Die Muhkuh 26. Mai 2008 17:21

Re: Panelinhalt ausdrucken
 
In dem man die Forensuche nutzt. :stupid:

MrMyagi 26. Mai 2008 17:26

Re: Panelinhalt ausdrucken
 
Wie man nen Screenshot etc erstellt habe ich ja schon alles gefunden,
jedoch wird dort imme rein ganzes Formular, bzw der ganze Desktop ausgelesen.
Wie setze ich jedoch nur den Fokus auf das Panel?

Edit:
Ahhhh ich glaube ich habe etwas gefunden, falls noch irgendwer nach dem gleichen sucht:
klick
steht ganz unten auf der Seite

niao 28. Dez 2008 17:16

Re: Panelinhalt ausdrucken
 
Dein Tip ist schon gut,
aber ich habe das Formular verkleinert. Die Elemente auf dem Panl sind somit nicht sichtbar.
Wie kann ich auch den nicht sichtbaren Bereich ausgeben?

Wäre prima, wenn jemand eine Antwort hat.

Viele Grüße niao

roga 28. Dez 2008 17:42

Re: Panelinhalt ausdrucken
 
Eine Möglichkeit wäre bzw. Panel1.PaintTo oder Du leitest Dir eine eigene Komponente ab und druckst dann über Canvas.

RoGa

niao 28. Dez 2008 18:24

Re: Panelinhalt ausdrucken
 
Hallo RoGa,

wenn du mir bitte ein kleines Beispiel für den Druck über den Canvas geben könntest wäre ich dir sehr dankbar.

Viele Grüße

niao

Luckie 28. Dez 2008 19:09

Re: Panelinhalt ausdrucken
 
Was befindet sich denn auf dem Panel? Ist es nur Text, kann man diesen auch relativ einfach auf dem Canvas des Druckers ausgeben.

niao 28. Dez 2008 19:15

Re: Panelinhalt ausdrucken
 
Hallo Michael,

auf dem Panel befinden sich allerlei, auch eigene, Komponenten.

Gruß niao

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 18:06 Uhr.

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