![]() |
Re: Eigener Eigenschaftsdialog für Drucker
Hab leider noch nicht weiter geforscht hätte aber zumindest gedacht das der "Windows-Drucker" die Einstellungen übernimmt.
Beim Quickreport habe ich schon damit gerechnet das die Einstellungen übertragen werden müssen. Für weitere Ergüsse :firejump: dankbar. Frank |
Re: Eigener Eigenschaftsdialog für Drucker
Hat denn immer noch niemand eine Idee? Ich verzweifel noch!!!
Wie gesagt, es klappt alles ohne Probleme...ich kann per Programmcode den Dialog für die Druckertreibereinstellungen öffnen. (mit DM_IN_PROMPT) Aber, wenn ich etwas drin ändere (z.B. Auflösung oder Farbe) dann werden die Äänderungen bei OK nicht übernommen. Also, in DEVMODE scheint sich nichts zu ändern. :wall: |
Re: Eigener Eigenschaftsdialog für Drucker
ICH HABS!!! :P
Delphi-Quellcode:
Er druckt mit meinen getätigten Einstellungen und beim wiederholten Aufruf sind die Einstellungen geblieben.
DocumentProperties(Form1.Handle, PrinterHandle,MyPrinter,MDevmode^,MDEVmode^,DM_OUT_BUFFER OR DM_IN_PROMPT OR DM_IN_BUFFER);
Es geht wieder voran... |
Re: Eigener Eigenschaftsdialog für Drucker
@emkay:
Re: ich hab's hmm... ich (D5) werde die blöden Zugriffsverletzungen nicht los. Hast du eine Idee :roll: |
Re: Eigener Eigenschaftsdialog für Drucker
Zugriffsverletzungen...ja, die kamen bei mir auch.
Wobei, weiß ich jetzt aber nicht mehr genau. Wie gehabt, zeig mal Deinen Code, dann sehen wir weiter. |
Re: Eigener Eigenschaftsdialog für Drucker
Kannst du bitte den kompletten Code posten ?
Benutzt du auch Quickreport ? Mfg. Frank |
Re: Eigener Eigenschaftsdialog für Drucker
So,
nun klappt's, ohne Fehlermeldungen. Warum nun plötzlich weiß ich aber auch nicht :shock: Mein eigentliches Problem waren wechselnde Papierformate (Etikettendrucker). So hat es dann geklappt:
Code:
uses [....], printers, winspool; procedure tEditLager.Papierformat; var Device, Driver, Port: array[0..80] of Char; DevMode: THandle; pDevmode: PDeviceMode; begin Printer.GetPrinter(Device, Driver, Port, DevMode); Printer.SetPrinter(Device, Driver, Port, 0) ; Printer.GetPrinter(Device, Driver, Port, DevMode); If Devmode <> 0 Then Begin pDevMode := GlobalLock( Devmode ); If pDevmode <> Nil Then try With pDevmode^ Do Begin { dmPapersize := DMPAPER_A4; dmFields := dmFields or DM_PAPERSIZE; } dmPapersize := DMPAPER_USER; dmPaperLength := 140; dmPaperwidth := 800; dmFields := dmFields or DM_PaperSize or DM_PAPERLength or dm_paperWidth; End; finally GlobalUnlock( Devmode ); end; End; { If } end; |
Re: Eigener Eigenschaftsdialog für Drucker
Hallo,
Ich Schreibe mal noch mit Aufruf des Eigenschaftsdialoges. So funktioniert es ohne Fehler. :)
Delphi-Quellcode:
Gruß
uses [....], printers, winspool;
procedure PrinterSitting(hwnd: HWND); var aDevMode: PDeviceMode; hPrinter: THandle; Device : array[0..255] of char; Driver : array[0..255] of char; Port : array[0..255] of char; hDeviceMode: THandle; begin Printer.GetPrinter(Device, Driver, Port, hDeviceMode); if WinSpool.OpenPrinter(@Device, hPrinter, nil) then try aDevMode := GlobalLock(hDeviceMode); DocumentProperties(hwnd, hPrinter, Device, aDevMode^, aDevMode^, DM_OUT_BUFFER or DM_IN_PROMPT or DM_IN_BUFFER ); GlobalUnlock( hDeviceMode ); finally WinSpool.ClosePrinter( hPrinter ); end; end; ts_abc |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:40 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