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 2 Drucker im Programm ansprechen (https://www.delphipraxis.net/110293-2-drucker-im-programm-ansprechen.html)

Privateer3000 16. Mär 2008 11:56


2 Drucker im Programm ansprechen
 
Salute Companeros,

Ziel ist es zwei verschiedene Drucker in einem
Programm festzulegen.
D.h. einmal wird auf Drucker 1 gedruckt dann wieder
auf Drucker 2.
Allerdings soll nicht jedesmal ein Printdialog durchgeführt
werden.
Wie lege ich so etwas fest, zB eine Variable?

Grüße

sx2008 16. Mär 2008 12:07

Re: 2 Drucker im Programm ansprechen
 
Die Namen der Drucker werden in einer Ini-Datei gespeichert:
Code:
[Settings]
Printer1=HP Lasetjet 5
Printer2=Cannon 4120
Die Namen können über Printer.Printers abgefragt werden.
Um dann einen der 2 Drucker anzuwählen:
Delphi-Quellcode:
Printer.PrinterIndex := Printer.Printers.IndexOf(druckername);

Privateer3000 16. Mär 2008 12:31

Re: 2 Drucker im Programm ansprechen
 
Vielen Dank!

Schwedenbitter 23. Feb 2009 23:50

Re: 2 Drucker im Programm ansprechen
 
Hallo,

ich muss da leider nochmal nachhaken. Bei mir funktioniert der folgende Code insofern nicht, als dass immer auf den Standarddrucker gedruckt wird. Egal was ich auch einstelle:
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
// Drucker im System ermitteln und aktuellen anzeigen
begin
   ComboBox1.Items:=Printer.Printers;
   If ComboBox1.Items.Count>0 Then
      ComboBox1.ItemIndex:=Printer.PrinterIndex;
end; //--> das klappt noch

Procedure TForm1.Button1Click(Sender: TObject);
// Ausdruck auf gewählten Drucker
Begin
   Printer.Printers.IndexOf(ComboBox1.Text);
   Application.MessageBox(PAnsiChar(ComboBox1.Text),'');
   Printer.BeginDoc;
   Printer.Canvas.StretchDraw(Rect(0,0,Printer.PageWidth,Printer.PageHeight),Image1.Picture.Graphic);
   Printer.EndDoc;
End; //--> das klappt nicht mehr, wobei ComboBox1.Text nicht leer ist
Was mache ich da falsch?

Danke für die Tipps, Alex

blink182 23. Feb 2009 23:55

Re: 2 Drucker im Programm ansprechen
 
ohne da jetzt wirklich die Ahnung zu haben, würde ich sagen, dass gar keine Zuweisung erfolgt.
Da sx2008 ja von
Delphi-Quellcode:
Printer.PrinterIndex := Printer.Printers.IndexOf(druckername);
schrieb, aber das wird ja bei dir gar nicht gemacht. Vielleicht hilft das ja :)
MfG blink182


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:29 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 by Thomas Breitkreuz