procedure TForm1.Button1Click(Sender: TObject);
var
ADevice, ADriver, APort: array [0..255] of char;
ADeviceMode: THandle;
DevMode: PDevMode;
begin
with Printer do begin
GetPrinter(ADevice,ADriver,APort,ADeviceMode);
SetPrinter(ADevice,ADriver,APort,0);
GetPrinter(ADevice,ADriver,APort,ADeviceMode);
DevMode := GlobalLock(ADeviceMode);
if not Assigned(DevMode) then ShowMessage('Не могу установить принтер.')
else begin
with DevMode^ do begin
{Применяем здесь любые настройки, необходимые для изменения установок печати}
dmDefaultSource := DMBIN_UPPER;
{этот код приведен в "Windows.pas"}
end;
GlobalUnlock(ADeviceMode);
SetPrinter(ADevice,ADriver,APort,ADeviceMode);
end;
end;
Printer.BeginDoc;
Printer.Canvas.TextOut(50,50,'Эта страница печатается из ВЕРХНЕГО ЛОТКА.');
with DevMode^ do begin
{Применяем здесь любые настройки, необходимые для изменения установок печати}
dmDefaultSource := DMBIN_LOWER;
{этот код приведен в "Windows.pas"}
end;
Printer.NewPageDC(DevMode);
Printer.Canvas.TextOut(50,50,'Эта страница печатается из НИЖНЕГО ЛОТКА.');
Printer.EndDoc;
end;
{*************************************************************
Примечание от автора:
Я использовал это во многих своих программах, поэтому я уверен в работоспособности кода.
Данный кода был создан в Delphi Client/Server 2.01 под WinNT 4.0, но впоследствии был
проверен на других версиях Delphi, а также под Windows95.
Правда я еще не поробовал его под Delphi 4... Если вы имеете любые комментарии или улучшения,
не постесняйтесь отправить их мне...
************************************************************}