Autor Beitrag
dingdoi
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Fr 17.06.05 17:22 
Hallo zusammen,

ich habe hier ein Programm vor mir, aus welchem heraus zwei Verarbeitungs-Threads erzeugt werden. Diese beiden Threads sollen jeweils einen Druck auf unterschiedliche Drucker durchführen. Das läuft zurzeit über TPrinter. Starte ich die Drucke nacheinander, ist alles in Ordnung.

Das Problem: Beginnt der zweite Druck, wenn der erste noch läuft, gibt es eine Exception.

Als Ursache habe den Aufbau der printers.pas ausgemacht. Es wird offensichtlich immer nur ein Device auf einmal unterstützt. (Starte ich die Drucke gleichzeitig aus zwei Programmen, klappt das ebenfalls.)


Ich muss aber auf jeden Fall den gleichzeitigen Druck aus einer Applikation hinbekommen. Irgendwelche Ideen?


Grüße,
Jan
alias5000
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 2145

WinXP Prof SP2, Ubuntu 9.04
C/C++(Code::Blocks, VS.NET),A51(Keil),Object Pascal(D2005PE, Turbo Delphi Explorer) C# (VS 2008 Express)
BeitragVerfasst: Fr 17.06.05 17:52 
Vllcht wartest du bis der eine fertig ist (k.a. wie, aber so mal als ansatz) wechselst auf den anderen und druckst es auf dem :?:

_________________
Programmers never die, they just GOSUB without RETURN
AXMD
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 4006
Erhaltene Danke: 7

Windows 10 64 bit
C# (Visual Studio 2019 Express)
BeitragVerfasst: Fr 17.06.05 17:54 
@alias: Das ist ja nicht das Problem. Er schreibt, dass er gleichzeitig drucken möchte.
Zum Thema: ich hab das noch nie versucht, aber erzeug einfach mal ein neues Printer-Objekt ;)

AXMD
dingdoi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Fr 17.06.05 18:01 
Das mit dem zweiten Printer-Objekt habe ich schon versucht, bringt mir aber auch nur ne Fehlermeldung, wenn ich damit drucken will.

Borland hat übrigens folgende tolle Lösung für dieses zweite Objekt:
community.borland.co...0,1410,17052,00.html :shock:
dingdoi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Fr 17.06.05 21:52 
Mein letzter Post sah so aus, als hätte ich eine Lösung. Ist aber nicht so. Der Lösungsansatz von Borland ist gar keiner! Wollte ich eigentlich mit dem Smiley ausgedrückt haben.

Gibt's vielleicht noch irgendwo einen Vorschlag? Z.B. ne andere Komponente oder so?
alzaimar
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 2889
Erhaltene Danke: 13

W2000, XP
D6E, BDS2006A, DevExpress
BeitragVerfasst: Fr 17.06.05 22:00 
Hier meine Ideen:
1. Spooler verwenden (damit umgehst du das Problem). Es wird zwar nacheinander gedruckt, aber eben in den Spooler, was schnell geht. Vielleicht reicht das.
2. Du übergibst die zu druckenden Informationen per Shared Memory oder WM_COPYDATA an einen zweiten Prozess (EXE). Das geht doch wohl.
hansa
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 3079
Erhaltene Danke: 9



BeitragVerfasst: Fr 17.06.05 22:05 
user profile icondingdoi hat folgendes geschrieben:
..aus welchem heraus zwei Verarbeitungs-Threads erzeugt werden. Diese beiden Threads sollen jeweils einen Druck auf unterschiedliche Drucker durchführen...


Was verstehst du unter einem Thread ? :shock: Meine Glaskugel hat gemeint, wenn zwei unterschiedliche Drucker nicht gleichzeitig benutzt werden sollen ist das alles egal. Auch der Borland Link. Habe das auch getestet, da ich auch an den Druckern dran bin. Kein Problem. Der Fehler dürfte daran liegen, daß der zu druckende Text (also die Datei) nicht geschlossen wird. Und das passiert wohl automatisch beim Programmende. IMHO ist das ein ziemlich eindeutiger Effekt. Der nächste würde dadurch entstehen, die Drucker in kürzester Zeit umzuklemmen. So was kriegt man recht gut hin, wenn man schneller als der Drucker ist. :mrgreen:

_________________
Gruß
Hansa
dingdoi Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 16



BeitragVerfasst: Fr 17.06.05 22:16 
Mmmh, ich muss mir das mal durch den Kopf gehen lassen. Danke für die Antworten.