Einzelnen Beitrag anzeigen

grisu

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

drucken - papierschacht einstellen

  Alt 18. Dez 2002, 12: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