Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi PrintDialog: Es wird immer auf dem Standard-Drucker gedruckt (https://www.delphipraxis.net/110959-printdialog-es-wird-immer-auf-dem-standard-drucker-gedruckt.html)

JABRO 27. Mär 2008 11:00


PrintDialog: Es wird immer auf dem Standard-Drucker gedruckt
 
Hallo zusammen
Habe folgendes Problem: Es wird immer pber den Standarddrucker gedruckt, nicht über den im PrintDialog ausgewählten Drucker.

Hoffe ihr könnt mir helfen :-D

Schon mal danke im Vorraus

JABRO

Delphi-Quellcode:
procedure TOutputForm.PrintImageClick(Sender: TObject);
var
  i,j: Integer;
  myPrinter : TPrinter;  // Eine Instanz der TPrinterklasse erzeugen!
  r: TRect;
begin
  r.Left := 0;
  r.Top := 0;
  r.Right := Printer.PageWidth;
  r.Bottom := Printer.PageHeight;
  if PrintDialog1.Execute then
  begin
    myPrinter:= TPrinter.Create; // erstellen
    try
      myPrinter.Title:= 'Stangenoptimierung';
      myPrinter.BeginDoc;
      for j := 1 to PrintDialog1.Copies do
      begin
        if j <> 0 then
          myPrinter.NewPage;
        myPrinter.Canvas.StretchDraw(r , Output[0]); //Grafik auf DinA4 bzw. Druckergröße vergrößern
        for i := 1 to Output.Count - 1 do
        begin
          myPrinter.NewPage;
          myPrinter.Canvas.StretchDraw(r , Output[i]); //Grafik auf DinA4 bzw. Druckergröße vergrößern
        end;
      end;
      myPrinter.EndDoc;
    finally
      myPrinter.Free;
    end;
  end;
end;

Zugi 27. Mär 2008 12:41

Re: PrintDialog: Es wird immer auf dem Standard-Drucker gedr
 
Hallo!

Benutze nicht "myprinter", den brauchst Du nicht. Einfach printer nehmen (natürlich auch ohne Create). Oben hast Du printer ja schon zur Ermittlung von r verwendet.

Gruß,
Zugi

JABRO 27. Mär 2008 13:08

Re: PrintDialog: Es wird immer auf dem Standard-Drucker gedr
 
Hi Zugi

Vielen Dank es funktioniert jetzt einwandfrei!!

Zugi 27. Mär 2008 15:31

Re: PrintDialog: Es wird immer auf dem Standard-Drucker gedr
 
Prima!

Was Du noch machen solltest: die Ermittlung von r noch nach unten schieben. Im Beispiel oben holst Du die Einstellungen noch vom Standarddrucker.

Gruß, Zugi


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