Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Eigener Eigenschaftsdialog für Drucker (https://www.delphipraxis.net/8809-eigener-eigenschaftsdialog-fuer-drucker.html)

Sourcemaker 24. Sep 2003 14:50

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

emkay 27. Sep 2003 23:13

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:

emkay 30. Sep 2003 16:41

Re: Eigener Eigenschaftsdialog für Drucker
 
ICH HABS!!! :P

Delphi-Quellcode:
DocumentProperties(Form1.Handle, PrinterHandle,MyPrinter,MDevmode^,MDEVmode^,DM_OUT_BUFFER OR DM_IN_PROMPT OR DM_IN_BUFFER);
Er druckt mit meinen getätigten Einstellungen und beim wiederholten Aufruf sind die Einstellungen geblieben.

Es geht wieder voran...

Ulf346C 15. Okt 2003 14:25

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:

emkay 15. Okt 2003 20:51

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.

Sourcemaker 23. Okt 2003 10:02

Re: Eigener Eigenschaftsdialog für Drucker
 
Kannst du bitte den kompletten Code posten ?
Benutzt du auch Quickreport ?

Mfg.

Frank

Ulf346C 23. Okt 2003 15:22

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;

ts_abc 22. Dez 2003 06:38

Re: Eigener Eigenschaftsdialog für Drucker
 
Hallo,

Ich Schreibe mal noch mit Aufruf des Eigenschaftsdialoges. So funktioniert es ohne Fehler. :)

Delphi-Quellcode:
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;
Gruß
ts_abc


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:38 Uhr.
Seite 2 von 2     12   

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