AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi drucken - papierschacht einstellen
Thema durchsuchen
Ansicht
Themen-Optionen

drucken - papierschacht einstellen

Ein Thema von grisu · begonnen am 18. Dez 2002 · letzter Beitrag vom 25. Dez 2003
Antwort Antwort
grisu

Registriert seit: 18. Dez 2002
Ort: St. Pantaleon
2 Beiträge
 
#1

drucken - papierschacht einstellen

  Alt 18. Dez 2002, 11:37
Hi!
Benutze Delphi 5 Enterprise mit Win2000.
Also ich habe folgendes Problem.
Unsere Software benutzt Thermobondrucker (wie an den Supermarktkassen).

Die Papierlänge steuert man mit den Formularen aus der W2K Druckersteuerung. Das habe ich auch jetzt versucht aus dem Programm umzustellen aber es gelingt mir nicht.

Hier mal den Code den ich verwende:
Delphi-Quellcode:
       Printer.PrinterIndex := PrinterID;
       Printer.GetPrinter(ADevice, ADriver, APort, ADeviceMode);
       DevMode := GlobalLock(ADeviceMode);
       edit1.Text := inttostr(devmode^.dmpapersize);

       DevMode^.dmDefaultSource := 257;
       devmode^.dmFields := devmode^.dmFields or DM_DEFAULTSOURCE;

       DevMode^.dmPaperSize := 164; //wäre für unseren Drucker die richtige Grösse
       devmode^.dmFields := devmode^.dmFields or DM_PAPERSIZE;
       edit2.Text := inttostr(devmode^.dmpapersize);

       Printer.SetPrinter(ADevice, ADriver, APort, ADeviceMode);
       GlobalUnlock(ADeviceMode);

       Printer.Title := 'Hello World!';
       Printer.BeginDoc;
       for i := 1 to 100 do begin
       Printer.Canvas.TextOut(200, (i * 30) + 200, 'Hello World: ' + inttostr(i));
       end;
       Printer.EndDoc;
Also mit diesem Code funktioniert die ganze Sache nicht. Verwende ich aber den PrintDialog von Delphi dann funktionierts.
Habe auch versucht bis zum GlobalUnlock den Code auszuführen, wenn ich dann denn PrintDialog starte stehen schon die richtigen Werte im Dialog drinnen drücke ich dann auf OK funktionierts auch.

Vielleicht kann mir wer helfen
Danke Christian

[edit=Sakura]Delphi-Tags[/edit]
  Mit Zitat antworten Zitat
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#2
  Alt 18. Dez 2002, 13:12
Hallo Christian,
ersteinaml herzlich willkommen in der Delphi-PRAXiS!
Hm... Vielleicht wäre es eine Möglichkeit, dass du guckst (dabei viel Spaß ), wie der PrintDialog das ganze zuordnet. Die Sources findest du, da du ja die Enterprise-Version nutzt, im Delphi-Verzeichnis\Sources\Vcl\. Die Datei sollte eigenlich Dialogs.pas heißen...

Chris
  Mit Zitat antworten Zitat
Christian Seehase
(Co-Admin)

Registriert seit: 29. Mai 2002
Ort: Hamburg
11.105 Beiträge
 
Delphi 11 Alexandria
 
#3
  Alt 18. Dez 2002, 13:30
Moin Namensvetter,

der Unterschied könnte darin begründet liegen, dass der Dialog das System darüber informiert, dass eine Änderung stattgefunden hat, die reine Änderung der Einstellung, von Delphi aus, dies so aber nicht tut.

Schau Dir dazu am Besten mal die API SHChangeNotify im PSDK an, mit besonderem Augenmerk auf das Flag (für den Parameter uFlags) SHCNF_PRINTER.
Probiert hab' ich das bislang nicht, aber vielleicht geht's damit.
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
  Mit Zitat antworten Zitat
grisu

Registriert seit: 18. Dez 2002
Ort: St. Pantaleon
2 Beiträge
 
#4

hallo christian

  Alt 18. Dez 2002, 16:32
Danke für deine prompte Antwort. Leider bin ich nicht so gut drauf das ich weiß wie ich es anwenden muß.

Wann meinst Du muß ich das Bit setzen?

Danke Christian
  Mit Zitat antworten Zitat
ts_abc

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

Re: drucken - papierschacht einstellen

  Alt 25. Dez 2003, 21:55
Hallo Christian,

Lass diese Zeile Printer.SetPrinter(ADevice, ADriver, APort, ADeviceMode); über GlobalUnlock(ADeviceMode); einmal weg dann müsst es gehen.

Guß
Thomas
  Mit Zitat antworten Zitat
Antwort Antwort


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 08:07 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