AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Drucker auswählen mit PrinterIndex

Ein Thema von Luckie · begonnen am 25. Apr 2006 · letzter Beitrag vom 25. Apr 2006
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

Drucker auswählen mit PrinterIndex

  Alt 25. Apr 2006, 10:16
Ich lese aus einer Ini-Datei einen Drucker aus und will auf ihn drucken:
Delphi-Quellcode:
with FPrinter do
    begin
      // Druckjob starten
      PrinterIndex := Printers.IndexOf(FPrinterName);
      BeginDoc;
Setze ich den PrinterIndex vor BeginDoc, wie oben, dann bekomme ich die Exception:
Zitat:
'Printer is not currently printing'
Setze ich den PrinterIndex nach BeginDoc bekomme ich die Exception
Zitat:
'Printing in progress'


Kann mir mal bitte jemand verraten wann ich denn dann den Drucker auswählen soll? Ich bin etwas ratlos ehrlich gesagt. Irgendwie muss ich was vom Prinzip her falsch machen.

FPrinter ist vom Typ TPrinter aus der Unit Printers. Udn wird im Konstruktor der Klasse so
FPrinter := TPrinter.Create; erzeugt. Der obige Codeauszug stammt aus meiner Methode TPrintDoc.Print. Davor passiert eigentlich nichts.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Hansa

Registriert seit: 9. Jun 2002
Ort: Saarland
7.554 Beiträge
 
Delphi 8 Professional
 
#2

Re: Drucker auswählen mit PrinterIndex

  Alt 25. Apr 2006, 11:03
Mal sehen, wie ich das mache. So :

Delphi-Quellcode:
  Ini := TIniFile.Create (ExtractFilePath (ParamStr (0)) + 'CONST.INI');;
  (*$IFNDEF DEMO*)
    if dlgDrucker.Execute then begin
      if MessageBox(Self.Handle, 'Drucker standardmäßig für Programm benutzen ?',
                    'Information', MB_ICONINFORMATION or MB_YESNOCANCEL) = idYes then begin
        DruckerName := Printer.Printers [Printer.PrinterIndex];
        Ini.WriteString('Standardvorgaben','Windows - Drucker',DruckerName);
        showmessage ('aktiver Drucker ab jetzt : ' + DruckerName);
      end;
    end;
  (*$ELSE*)
    showmessage ('Demo - Version : Drucker ist immer Windows - Standardrucker !');
    DruckerName := GetDefaultPrinter;
    DruckerDateiName := 'STANDARD.INI';
    Ini.WriteString('Standardvorgaben','Drucker - Dateiname',DruckerDateiName);
  (*$ENDIF*)
  Ini.Free;
  sbDrucker.SimpleText := 'Drucker : ' + DruckerName;
Quelltext dürfte wohl klar sein.
Gruß
Hansa
  Mit Zitat antworten Zitat
Elfriede

Registriert seit: 26. Aug 2003
8 Beiträge
 
#3

Re: Drucker auswählen mit PrinterIndex

  Alt 25. Apr 2006, 11:07
Zitat von Luckie:
FPrinter ist vom Typ TPrinter aus der Unit Printers. Udn wird im Konstruktor der Klasse so
FPrinter := TPrinter.Create; erzeugt. Der obige Codeauszug stammt aus meiner Methode TPrintDoc.Print. Davor passiert eigentlich nichts.
Da war doch was .... niemals ein TPrinter selbst erzeugen, sondern immer aus der Unit Printers über die Funktion Printer() geben lassen.

Aus der Delphi-Hilfe:
Zitat:
Obtain an instance of TPrinter by calling the Printer function in the Printers unit.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Drucker auswählen mit PrinterIndex

  Alt 25. Apr 2006, 11:10
@Elfriede: Das wars. Habe ich mittlerweile auch rausgefunden. Aber Danke denn noch.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:46 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