Выбор лотка принтера для печати

Сегодня мы напишем с вами одну очень интересную процедуру, она позволяет выбирать лоток принтера, с помощью которого производится печать.

Первым делом в раздел 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  

Вот сейчас действиельно все !!!
Теги:
принтер
Добавлено: 01 Августа 2018 07:20:54 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...