Hallo Leute,
vorweg: Delphi 7
Also, folgende Herausforderung: Ich brauche ein Programm, bei dem sich beliebig viele Dateien in eine bestimmte Reihenfolge bringen lassen (hab ich mit einer ListBox und Drag&Drop gemacht) und diese Reihenfolge beliebig oft ausgedruckt werden kann. Das hat den Sinn, dass ein Dateienpaket, etwa für ein kleines Heft, bei dem Inhaltsverzeichnis, Inhalte und Impressum in separaten Dateien gespeichert wurden, bereits in der richtigen Reihenfolge mehrfach gedruckt werden kann, ohne die (oft sehr großen) Einzeldateien zu einer zusammenfassen zu müssen. Also man erspart es sich, 30 mal Inhaltsverzeichnis.cdr zu drucken und dann auf jeden "Inhalt"-Stapel ein Inhaltsverzeichnisblatt zu legen. Nur, damit ihr den Hintergrund des Programms ein wenig versteht. Das mit den Dateien ist gar kein Problem, nur beim Drucken bin ich ein wenig unsicher. Da das ganze in einem Büro laufen soll, in dem mehrere Drucker im Netzwerk zur Verfügung stehen, sollte auf jeden Fall
einmal der Druckdialog geöffnet und der richtige Drucker ausgewählt werden. Danach sollte das Programm aber alleine laufen können, also kein zu bestätigender Druckdialog mehr erscheinen. Wie kann ich das lösen? Oder - brauch ich den Druckdialog überhaupt?
Bisher nutze ich zum Drucken
Delphi-Quellcode:
for i := 0
to ListBox1.Count - 1
do
ShellExecute(
handle, '
print', PChar(ListBox1.Items[0]), '
', '
', SW_HIDE);
wobei in der Listbox eben die Dateipfade gespeichert sind. Bei mir hier funktioniert das gut, weil ich eh nur einen Drucker am PC angestöpselt habe und dieser auch der Standarddrucker ist. In dem Büro, in dem das Programm laufen soll, wird das aber nicht der Fall sein. Kann ich irgendwie einmal in meinem Programm auswählen, dass mit dem Shell-Befehl immer auf dem richtigen Drucker gedruckt wird, ohne den Druckerdialog öfter als einmal zu verwenden?
Wär echt spitze, wenn da einer was wüsste
Grüßle ausm sonnigen Süden
Dani
[
edit] Ich habe gerade beim Durchforsten der Komponenten selbst festgestellt, dass Delphi neben des normalen PrintDialogs auch PrinterSetupDialog bereitstellt, mit dem sich meiner Vermutung nach bewerkstelligen lassen würde, was ich will. Jetzt die Frage: Wenn ich den Drucker im PrinterSetupDialog auswähle, wird dann auch über ShellExecute(
handle, 'print'...) auf diesem Drucker gedruckt?