Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Delphi Wie erzeuge ich für diesen Code ein PrinterHandle? (https://www.delphipraxis.net/203221-wie-erzeuge-ich-fuer-diesen-code-ein-printerhandle.html)

NicoleWagner 25. Jan 2020 10:58

Wie erzeuge ich für diesen Code ein PrinterHandle?
 
Diese Goldgrube fand ich neulich, daraus ist ein Schnipsel, das StringGrids druckt:
https://www.delphi-treff.de/tipps-tr...ggrid-drucken/

Die anderen Schnipsel funktionieren sowas von perfekt, nur dieses eine nicht, es hakt hier:
waag:=getdevicecaps(printer.handle,logpixelsx);

Wie erzeuge ich so ein printer.handle?

In meiner Tool-Palette fand ich "printerDialog" und "printerSetupDialog".
Wie und mit welchem verbinde ich das auf kurzem Weg in diesen Methode oben?
und: Ich habe mehr als einen Drucker.


Danke!

jaenicke 25. Jan 2020 11:10

AW: Wie erzeuge ich für diesen Code ein PrinterHandle?
 
Wenn du den PrinterDialog per Execute aufrufst, kann der Benutzer dort den Drucker auswählen. Der steht danach in Printer drin.

TurboMagic 25. Jan 2020 11:20

AW: Wie erzeuge ich für diesen Code ein PrinterHandle?
 
Binde mal die unit printers ein. Printers.handle sollte dann schon Mal das des Standarddruckers sein.

Dort drin müsste es glaube ich auch eine Liste aller Drucker geben.

NicoleWagner 25. Jan 2020 11:21

AW: Wie erzeuge ich für diesen Code ein PrinterHandle?
 
danke, wunderbar! Läuft schon.

himitsu 25. Jan 2020 11:21

AW: Wie erzeuge ich für diesen Code ein PrinterHandle?
 
Delphi-Quellcode:
//uses Printers;
Printer.Handle

Printer.Printers // alle Drucker im System
Printer.PrinterIndex // aktuell ausgewählter Drucker < Index aus Printers zuweisen oder über TPrinterSetupDialog auswählen
[edit]
Ich glaub ich werd alt.

TurboMagic 25. Jan 2020 21:25

AW: Wie erzeuge ich für diesen Code ein PrinterHandle?
 
Zitat:

Zitat von NicoleWagner (Beitrag 1455984)
danke, wunderbar! Läuft schon.

Und welche Lösung hast du nun benutzt?

haentschman 26. Jan 2020 06:48

AW: Wie erzeuge ich für diesen Code ein PrinterHandle?
 
Moin...8-)
Zitat:

Diese Goldgrube fand ich neulich, daraus ist ein Schnipsel, das StringGrids druckt:
...schön das es funktioniert...aber so macht man es eigentlich falsch. :?
Trennung von GUI und Logik (Daten) ist das Zauberwort! Man druckt nicht das Grid sondern die Datenmenge die das Grid befüllt (Query, StringList etc.). Sowas war früher State of the Art. :P
Beispiel:
Wenn du dich entscheidest, die Optik aufzubessern (das Grid gegen was neues zu tauschen), dann kannst du deine Druck procedure einstampfen und es quasi nochmal neu programmieren.
:wink:

himitsu 26. Jan 2020 12:14

AW: Wie erzeuge ich für diesen Code ein PrinterHandle?
 
Für einige Grid-Komponenten gibt es auch vom Hersteller eine Druckprozedur.
z.B. bei DevExpress

Ein kleiner Vorteil, der Benutzer bekommt das gedruckt, was in der Anzeige drin ist.
> Spaltenbreiten, Reihenfolge der Spalten, Sortierung (im Grid), Filter, Gruppierung, Spalten ein-/ausblenden usw.
> mit höherer Auflösung (als vom Monitor) und ohne Scrollbalken eines Screenshots

Aber natürlich gibt es auch unabhängige PrintEngines, wo man das DataSet/Query rein gibt und sowas ebenfalls/nochmals machen kann.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 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