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]