Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Vorschau beim PrintDialog in FMX (https://www.delphipraxis.net/217040-vorschau-beim-printdialog-fmx.html)

tbathelt 12. Apr 2025 13:21

Vorschau beim PrintDialog in FMX
 
Hallo zusammen,
beim Aufruf eines Print-Dialogs (FMX.Printer.TPrintDialog) wird (in den aktuellen Delphi-Versionen) ein Fenster angezeigt, welches auf der rechten Seite ein Feld für die Vorschau des zu druckenden Dokuments enthält. Diese Feld ist jedoch leer und ich konnte bislang nirgends eine Information darüber finden, wie ich ein Objekt in diesem Feld anzeigen kann. Hat jemand von euch hierzu Erfahrungen oder kann mir Infos dazu geben?
Ich bin für jeden Hinweis dankbar.

Harry Stahl 14. Apr 2025 19:01

AW: Vorschau beim PrintDialog in FMX
 
Ich nehme an, dass Du - wenn der Dialog angezeigt wird - auf "Einstellungen" klickst und dann den dort angezeigten Dialog (Windows) meinst (oder z.B. unter Linux dann Registerseite 2 "Einrichten"). Das sind alles die jeweiligen Dialoge des jeweiligen Systems.

Die angezeigten Mini-Seiten-Symbole sind meines Wissens nur Platzhalter, um die Größe und Ausrichtung der Seite anzuzeigen. Eine Vorschau da einzubinden ist - soweit mir bekannt nicht möglich.

jaenicke 14. Apr 2025 20:43

AW: Vorschau beim PrintDialog in FMX
 
Es könnte eventuell per Hook gehen, sprich auf das Zeichnen reagieren und die Vorschau dort einzeichnen. Das ist aber nicht mal eben so gemacht.

Ich habe leider aktuell nicht die Zeit, mir das genauer anzuschauen. Es interessiert mich allerdings. Per KI (ChatGPT) bekommt man durchaus entsprechenden Code, wenn man die API Funktion PrintDlg und das Einklinken für das Zeichnen der Vorschau via Hook erfragt. Ich konnte das aber nicht testen...

himitsu 14. Apr 2025 21:40

AW: Vorschau beim PrintDialog in FMX
 
Erstmal kommt es auch darauf an, in welchem System dieser Dialog aufgeht.
Windows, Android, OSX, ...

Für Windows landet es am Ende bei MSDN-Library durchsuchenPrintDlg/PrintDlgW,
siehe TFMXDialogService.DialogPrint in FMX.Dialogs.Win.pas

In der Doku sehe ich aber nicht, wie man dort ein Image übergeben könnte
und eine Suche fand auf die Schnelle auch nichts.

TPrintDialog selbst bietet auch nichts an.

Da für die Anzeige auf das Printer-Handle zugegriffen wird,
wäre ich mal auf die saublöde Idee gekommen,
einfach was auf den Drucker-Canvas zu malen und auszuprobieren, ob man das dort sieht.
Delphi-Quellcode:
Printer.BeginDoc;
//Printer.NewPage;
Printer.Canvas.DrawLine(PointF(0, 0), PointF(500, 500), 50);
if TPrintDialog.Create(Self).Execute then
  ...;
Printer.Abort;
Aber schon beim BeginDoc geht hier vom PDF-Drucker sofort der Speichern-Dialog auf. :wall:

tbathelt 15. Apr 2025 12:46

AW: Vorschau beim PrintDialog in FMX
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich habe mal zur Verdeutlichung einen Screenshot angehängt, wie das Fenster, welches beim Aufruf von TPrintDialog aufgeht, auf meinem System (Windows 11 / Delphi 11) aussieht. Es geht um das Objekt auf der rechten Seite, wo momentan der Text "keine Vorschau verfügbar" erscheint. Hier sollte normalerweise eine Vorschau des zu druckenden Dokuments erscheinen, wenn ich wüßte, wie man auf diese Vorschau zugreift.
Über ChatGPT und DeepSeek habe ich schon vergeblich versucht mir einen Code dazu generieren zu lassen.

Harry Stahl 16. Apr 2025 14:28

AW: Vorschau beim PrintDialog in FMX
 
Das ist wohl ein neuer, bzw. geänderter System-Dialog in Windows 11.

Habe den Eindruck, das ist eher noch experimentell, denn selbst eigene Anwendungen des Systems (Notepad, Paint) untersützen die Vorschau in diesem Dialog nicht.

Denke daher, den Dialog kannst Du erst einmal vergessen, wenn Dein Programm im Druckdialog eine Vorschau haben soll, musst Du wohl selber einen passenden Dialog bauen.


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