Ich möchte zur Laufzeit die Papierlänge des Druckers einstellen so wie es PrinterSetupDialog macht, aber ohne jedesmal diesen Dialog aufzurufen
Nachstehendes Programm ließt und setzt den Drucker, die Lesekontrolle stimmt auch, aber den Drucker interessiert das nicht. Es muß doch einen Weg geben den Drucker wie im Printersetup einzustellen
Wer kann mir helfen?
procedure plen;
var MyPrint,MyDriver,MyPort : array [0..80] of Char;
ADevmode,Printerhandle : THandle;
size : word;
DM1,DM2 : ^Devmode;
begin
Printer.getPrinter (MyPrint,MyDriver,MyPort,ADevmode);
OpenPrinter (MyPrint,PrinterHandle,nil);
DM1:=nil; DM2:=nil;
size:=DocumentProperties(0,PrinterHandle,MyPrint,D M1^,DM2^,0);
GetMem (DM1,Size);
DocumentProperties (0,PrinterHandle,MyPrint,DM1^,DM2^,DM_OUT_BUFFER);
DM1^.dmpaperlength:=1200;
DocumentProperties (0,PrinterHandle,MyPrint,DM1^,DM2^,DM_IN_BUFFER);
Freemem (DM1);
{nochmal Lesekontrolle}
GetMem (DM1,Size);
DocumentProperties (0,PrinterHandle,MyPrint,DM1^,DM2^,DM_OUT_BUFFER);
ClosePrinter (PrinterHandle);
Freemem (DM1);
end;
Nachstehendes Programm ließt und setzt den Drucker, die Lesekontrolle stimmt auch, aber den Drucker interessiert das nicht. Es muß doch einen Weg geben den Drucker wie im Printersetup einzustellen
Wer kann mir helfen?
procedure plen;
var MyPrint,MyDriver,MyPort : array [0..80] of Char;
ADevmode,Printerhandle : THandle;
size : word;
DM1,DM2 : ^Devmode;
begin
Printer.getPrinter (MyPrint,MyDriver,MyPort,ADevmode);
OpenPrinter (MyPrint,PrinterHandle,nil);
DM1:=nil; DM2:=nil;
size:=DocumentProperties(0,PrinterHandle,MyPrint,D M1^,DM2^,0);
GetMem (DM1,Size);
DocumentProperties (0,PrinterHandle,MyPrint,DM1^,DM2^,DM_OUT_BUFFER);
DM1^.dmpaperlength:=1200;
DocumentProperties (0,PrinterHandle,MyPrint,DM1^,DM2^,DM_IN_BUFFER);
Freemem (DM1);
{nochmal Lesekontrolle}
GetMem (DM1,Size);
DocumentProperties (0,PrinterHandle,MyPrint,DM1^,DM2^,DM_OUT_BUFFER);
ClosePrinter (PrinterHandle);
Freemem (DM1);
end;