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
Seite 2 von 2     12   
franktron

Registriert seit: 11. Nov 2003
Ort: Oldenburg
1.446 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#11

Re: Eigene Instanz von Printers / Fragen zum Druck

  Alt 3. Jun 2008, 08:40
Warum baust du nicht eine Drucker Warteschlange und sendest dann vom Hauptprogramm und vom Thread darein und die Warteschlange arbeitet die dann ab.

Weil ich glaub nicht das es geht 2 Drucke gleichzeitig von einer Anwendung abzuschicken.
Frank
Tux sein Lieblingsquellcode
While anzfische<TuxSatt do begin
Fisch:=TFisch.Create; Tux.EssenFisch(Fisch); Fisch.Free;inc(anzfische); end;
  Mit Zitat antworten Zitat
Assertor

Registriert seit: 4. Feb 2006
Ort: Hamburg
1.296 Beiträge
 
Turbo C++
 
#12

Re: Eigene Instanz von Printers / Fragen zum Druck

  Alt 3. Jun 2008, 09:26
Guten Morgen,

@sx2008: Das mit der zweiten Instanz hatte ich ja in Beitrag #3 schon vermutet, und 3-Timeouts bevor es kracht bzw. ein Job verloren geht sind ein No-Go. Trotzdem Danke für die Anregung!

Zitat von franktron:
Warum baust du nicht eine Drucker Warteschlange und sendest dann vom Hauptprogramm und vom Thread darein und die Warteschlange arbeitet die dann ab.
Gute Idee, so etwas ähnliches fiel mir auch gestern Abend ein.

Ich habe mir die Printers.pas mal genau angesehen, die ist tatsächlich nicht Thread-Safe, weil sie intern Canvas, Font etc nutzt. Zusätzlich sind im QualityCentral mehrere QCs für Printers.pas die sich auf nicht threadsicheren Funktionen beziehen...

Ich werde wohl eine Warteschlange schreiben, muß mal sehen, wie ich dann mit Fehlern dort umgehe. Prinzipiell wollte ich im Thread den Druck auslösen, damit ich auch dort den Fehlercode erhalte - fürs Loggen und um ggf. die Threadausführung zu stoppen.

Wie würdet Ihr die Warteschlange angehen?

Ich denke in Richtung eines eigenen Threads mit Synchronized Callbacks für Fehlerreport, internen StringList für eine eindeutige Printjob-Id (vielleicht auf Basis von UnixDateTime) und der eigentlichen Druckfunktion.

Gibt es eigentlich eine Liste, welche Funktionen etc. threadsafe sind? Außerdem frage ich mich, wenn es nicht threadsafe ist von einem Thread auf die VCL unsychronisiert zuzugreifen, wie ist es umgekehrt? z.b. wenn der TThread einer Prozedur namens Foo; hat. Kann ich die ohne Probleme von seiten des VCL-Mainthreads callen?

Gruß und vielen Dank
Assertor
Frederik
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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 03:01 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