AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Eigener Eigenschaftsdialog für Drucker
Thema durchsuchen
Ansicht
Themen-Optionen

Eigener Eigenschaftsdialog für Drucker

Offene Frage von "Sourcemaker"
Ein Thema von Sourcemaker · begonnen am 12. Sep 2003 · letzter Beitrag vom 22. Dez 2003
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 24. Sep 2003, 14:50
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 dankbar.

Frank
Frank
  Mit Zitat antworten Zitat
emkay

Registriert seit: 24. Sep 2003
9 Beiträge
 
#12

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 27. Sep 2003, 23:13
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.
  Mit Zitat antworten Zitat
emkay

Registriert seit: 24. Sep 2003
9 Beiträge
 
#13

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 30. Sep 2003, 16:41
ICH HABS!!!

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...
  Mit Zitat antworten Zitat
Ulf346C

Registriert seit: 15. Okt 2003
Ort: Magdeburg
84 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#14

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 15. Okt 2003, 14:25
@emkay:

Re: ich hab's

hmm... ich (D5) werde die blöden Zugriffsverletzungen nicht los.
Hast du eine Idee
  Mit Zitat antworten Zitat
emkay

Registriert seit: 24. Sep 2003
9 Beiträge
 
#15

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 15. Okt 2003, 20:51
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.
  Mit Zitat antworten Zitat
Benutzerbild von Sourcemaker
Sourcemaker

Registriert seit: 3. Sep 2003
Ort: Westoverledingen
264 Beiträge
 
Delphi 11 Alexandria
 
#16

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 23. Okt 2003, 10:02
Kannst du bitte den kompletten Code posten ?
Benutzt du auch Quickreport ?

Mfg.

Frank
Frank
  Mit Zitat antworten Zitat
Ulf346C

Registriert seit: 15. Okt 2003
Ort: Magdeburg
84 Beiträge
 
Delphi 10.2 Tokyo Enterprise
 
#17

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 23. Okt 2003, 15:22
So,

nun klappt's, ohne Fehlermeldungen.
Warum nun plötzlich weiß ich aber auch nicht

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;
  Mit Zitat antworten Zitat
ts_abc

Registriert seit: 22. Sep 2003
20 Beiträge
 
Delphi 10 Seattle Professional
 
#18

Re: Eigener Eigenschaftsdialog für Drucker

  Alt 22. Dez 2003, 06:38
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
  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 12:22 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