Сегодня мы напишем с вами одну очень интересную процедуру, она позволяет
выбирать лоток принтера, с помощью которого производится печать.
Первым делом в раздел uses добавляем модуль Printers, затем
после ключевого слова public прописываем вот такую строчку
procedure ChangePrinterTray;
И нажимаем CTRL+SHIFT+C.
Delphi автоматически генерирует шаблон нашей процедуры, а полный её вид будет
выглядеть следующим образом:
procedure TForm1.ChangePrinterTray;
var
ADevice, ADriver, APort: array [0..255] of Char;
ADeviceMode: THandle;
DevMode: PDeviceMode;
begin
Printer.GetPrinter( ADevice, ADriver, APort, ADeviceMode );
if ADeviceMode <> 0 then
begin
GlobalUnlock( ADeviceMode );
DevMode := GlobalLock( ADeviceMode ); //Получаем указатель на текущие параметры
DevMode.dmDefaultSource := DMBIN_AUTO; //Здесь указывается параметры относительно лотка
// (в данный момент указывается, что выбирается автоматически)
DevMode.dmFields := DevMode.dmFields or DM_DEFAULTSOURCE; //Указывает, что мы будем обновлять
GlobalUnlock( ADeviceMode );
Printer.SetPrinter( ADevice, ADriver, APort, ADeviceMode );//Применяем новые параметры
end;
end;
На этом все,... ДА чуть не забыл помимо автоматического выбора лотка
существуют следующие параметры:
DMBIN_ONLYONE
DMBIN_MIDDLE
DMBIN_LOWER
DMBIN_MANUAL
DMBIN_ENVELOPE
DMBIN_ENVMANUAL
DMBIN_AUTO
DMBIN_TRACTOR
DMBIN_SMALLFMT
DMBIN_LARGEFMT
DMBIN_LARGECAPACITY
DMBIN_CASSETTE
DMBIN_FORMSOURCE
Вот сейчас действиельно все !!!
|