AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Eigene Instanz von Printers / Fragen zum Druck
Thema durchsuchen
Ansicht
Themen-Optionen

Eigene Instanz von Printers / Fragen zum Druck

Ein Thema von Assertor · begonnen am 1. Jun 2008 · letzter Beitrag vom 3. Jun 2008
Antwort Antwort
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#1

Re: Eigene Instanz von Printers / Fragen zum Druck

  Alt 3. Jun 2008, 07:05
Man ist ja nicht gezwungen die Funktion Printers() zu benützten, sondern kann ja mit FMyPrinter := TPrinter.Create ein neues Objekt anlegen, dass dann auch ein eigenes Printer-Handle hat.
Im Thread dürfen dann aber die Funktionen Printer, SetPrinter und AssignPrn nicht benützt werden, da diese die globale Variable FPrinter benützen.
Könnte nun aber sein, dass gleichzeitiges Drucken aus Hauptanwendung und Thread ein Problem ergibt, da beiden das gleiche Printer-Handle von Windows zugeteilt wird. (nur wenn der gleiche Drucker angesprochen wird)
Dann sollte der Thread so lange warten, bis der Hauptthread fertig ist:
Delphi-Quellcode:
procedure TMyThread.CheckPrn;
var
   i : Integer;
begin
  if myprinter.Handle <> Printer.Handle then Exit; // versch. Drucker -> versch. Printjobs

  // 3 Mal prüfen um die Sicherheit zu erhöhen, den Hauptthread "auf dem falschen Fuss"
  // zu erwischen
  //
  for i := 0 to 2 do
  begin
    // Prüfen, ob Hauptthread gerade druckt
    while Printer.Printing do
       Sleep(500);
    end;
    Sleep(0); // Rechenzeit abgeben
  end;
end;
Für den Hauptthread braucht man wahrscheinlich keine Vorkehrungen zu treffen; weil wenn es dann zu einer Fehlermeldung kommt, kann der Benutzer kurz warten und den Druck erneut auslösen.
  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 22:45 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