浦
浦欣
Unregistered / Unconfirmed
GUEST, unregistred user!
我上回问的"如何在程序执行中设置打印机纸张类型?"的问题答案已经知道,
但我不知道该将那段程序放在何处,是放在begin
Doc之前还是之后,还是其它地方?
并且,你给我E-mail的那段程序,我只要一调用就出错,好象是内存分配、释放
的问题,你的程序如下:
procedure ChangePaperType(value: Integer);
var
sDrv: Pchar;
sPrt: Pchar;
DevAdr: THandle;
p: PDeviceModeA;
begin
sdrv := allocmem(256);
sprt := allocmem(64);
devadr := 0;
try
printer.GetPrinter(sdrv, sdrv, sprt, devadr);
p := ptr(devadr);
p^.dmFields := DM_PAPERSIZE;
p^.dmPaperSize := value;
do
cumentProperties(0, printer.handle, sdrv, p^, p^,
DM_IN_BUFFER);
finally
freemem(sdrv, 1024);
freemem(sprt, 256);
end;
end;
但我不知道该将那段程序放在何处,是放在begin
Doc之前还是之后,还是其它地方?
并且,你给我E-mail的那段程序,我只要一调用就出错,好象是内存分配、释放
的问题,你的程序如下:
procedure ChangePaperType(value: Integer);
var
sDrv: Pchar;
sPrt: Pchar;
DevAdr: THandle;
p: PDeviceModeA;
begin
sdrv := allocmem(256);
sprt := allocmem(64);
devadr := 0;
try
printer.GetPrinter(sdrv, sdrv, sprt, devadr);
p := ptr(devadr);
p^.dmFields := DM_PAPERSIZE;
p^.dmPaperSize := value;
do
cumentProperties(0, printer.handle, sdrv, p^, p^,
DM_IN_BUFFER);
finally
freemem(sdrv, 1024);
freemem(sprt, 256);
end;
end;