Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Formular zentriert ausdrucken (https://www.delphipraxis.net/154485-formular-zentriert-ausdrucken.html)

Metallicwar 13. Sep 2010 09:20

Formular zentriert ausdrucken
 
Hallo zusammen.
Mein Programm druckt mir ein Formular aus, auf dem sich mehrere Frames befinden.
Das Formular wird aber "NORMAL" ausgedruckt. Ich möchte dass mein Formular zentriert oder mittig ausgedruckt wird.
Gibt es dazu eine mitgelieferte Funktion, oder muss ich selbst was schreiben *hoff* :)

haentschman 13. Sep 2010 09:22

AW: Formular zentriert ausdrucken
 
Moin...
wie druckst du denn ? Hast du in Printers.Options (oder so ähnlich) schon mal geschaut ?

Metallicwar 13. Sep 2010 09:32

AW: Formular zentriert ausdrucken
 
ich drucke einfach über
Delphi-Quellcode:
Formular.Print
werd ich mal nachschaun

Metallicwar 13. Sep 2010 09:50

AW: Formular zentriert ausdrucken
 
http://www.delphipraxis.net/136035-b...usdrucken.html
Ein ähnliches Thema, ihm konnte auch nicht weitergeholfen werden...

Zurück zu meinem: In der Hilfe steht einiges... doch ich finde nichts passendes zu meinem Problem. (vll hab ich auch was übersehen)

Zu den Optionen, dass habe ich in der Hilfe gefunden:
Delphi-Quellcode:
begin
PrintDialog1.Options := [poPageNums, poSelection];

Delphi-Quellcode:
TPrintDialogOption = (
  poPrintToFile,
  poPageNums,
  poSelection,
  poWarning,
  poHelp,
  poDisablePrintToFile
);
Wert.................. Bedeutung
poDisablePrintToFile.. Das Kontrollkästchen In Datei drucken kann nicht aktiviert werden. Dieses Flag kann nur
...................... angegeben werden, wenn poPrintToFile gesetzt ist.
poHelp................ Im Dialogfeld wird die Schaltfläche Hilfe angezeigt. Dieses Flag wird bei manchen Versionen von
...................... Windows 95 ignoriert.
poPageNums............ Die Optionsfeldgruppe Seiten wird aktiviert, die dem Benutzer die Angabe eines Seitenbereichs
...................... ermöglicht.
poPrintToFile......... Das Kontrollkästchen In Datei drucken wird angezeigt.
poSelection........... Das Optionsfeld Markierung wird aktiviert, das dem Benutzer das Drucken des markierten Textes
...................... ermöglicht.
poWarning............. Eine Warnung wird angezeigt, wenn der Benutzer einen nicht installierten Drucker für die Ausgabe .......................angibt.

haentschman 13. Sep 2010 10:01

AW: Formular zentriert ausdrucken
 
... es muß auch Printers.PrintOptions (oder so ähnlich geben). Hab leider im Moment kein Delphi zur Hand. Die PrintDialog.Options sind nur für die Einstellungen des Dialogs zu gebrauchen.

Schau bitte noch mal nach...

DeddyH 13. Sep 2010 10:08

AW: Formular zentriert ausdrucken
 
Könnte man sich nicht mit GetFormImage (ich glaub, das hieß so) eine Bitmap des Formulars holen und dann über Printer.Canvas ausdrucken? Ggf. müsste das Bild noch herunterskaliert werden, damit es auf die Seite passt. Mittig bekäme man es dann, indem man für X --> (Printer.PageWidth - Bitmap.Width) div 2 und für Y --> (Printer.PageHeight - Bitmap.Height) div 2 errechnet.

Metallicwar 13. Sep 2010 14:06

AW: Formular zentriert ausdrucken
 
Hab mal wieder einen Hänger :)

Delphi-Quellcode:
var
x, y: Integer
Delphi-Quellcode:
         
begin
with Printer do
  begin
    BeginDoc;
    try
      bitmapFormular := Formular.GetFormImage;
      X := (Printer.PageWidth - bitmapFormular.Width) div 2; // was genau muss X sein???
      Y:= (Printer.PageHeight - bitmapFormular.Height) div 2; // was genau muss Y sein???
      //Bild herunterskalieren?
      //bitmap drucken?
    finally
      EndDoc;
    end;
  end;
end;

DeddyH 13. Sep 2010 14:10

AW: Formular zentriert ausdrucken
 
Aus dem Kopf:
Delphi-Quellcode:
Printer.Canvas.Draw(X,Y,bitmapFormular);
Falls die Bitmap aber zu groß ist, muss sie erst proportional verkleinert werden. Du kannst ja einmal nach Hier im Forum suchenStretchGraphic suchen.

Metallicwar 13. Sep 2010 14:47

AW: Formular zentriert ausdrucken
 
klasse, Delphi kotzt mich manchmal echt an. Ganze IDE abgeschmiert und nicht gespeichert...
Aufjedenfall, wurde mir meine Bitmap auf ausgedruckten Papier zentriert angezeigt aber viiiiel zu klein :)

Namenloser 13. Sep 2010 14:50

AW: Formular zentriert ausdrucken
 
Zitat:

Zitat von Metallicwar (Beitrag 1049292)
klasse, Delphi kotzt mich manchmal echt an. Ganze IDE abgeschmiert und nicht gespeichert...

Deswegen ist es bei mir mittlerweile zum Reflex geworden, nach jeder vollendeten Zeile Ctrl+Shift+S zu drücken. Bei BDS 2006 ist es aber auch echt schlimm...
Zitat:

Zitat von Metallicwar (Beitrag 1049292)
Aufjedenfall, wurde mir meine Bitmap auf ausgedruckten Papier zentriert angezeigt aber viiiiel zu klein :)

Das liegt daran, dass der Drucker eine viel höhere Aufösung als dein Montior hat. Da musst du entsprechend skalieren.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:55 Uhr.
Seite 1 von 2  1 2      

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