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

Опубиковано: 17.07.2008 г., автор: , просмотров: 16479

    Выбираем лоток принтера из delphi

    Сегодня мы напишем с вами одну очень интересную процедуру, она позволяет выбирать лоток принтера, с помощью которого производится печать.
    Первым делом в раздел 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;

    Буквально на днях хотел поэкспериментировать с кодом и проверить его на МФУ hp laserjet m2727 , но видать не судьба, у аппарата сломалась печка и его отдали в фирму по ремонту факсов

    На этом все,... ДА чуть не забыл помимо автоматического выбора лотка существуют следующие параметры:

    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

    Вот сейчас действиельно все !!!

    P.S. Огромное спасибо Павлу за присланный код данного примера.
    Не забываем подписываться на бесплатную мультимедийную рассылку.
    Форма для подписки расположена с права и с лева.
    С уважением www.delphiexpert.ru



    Похожие материалы

    Последние из рубрики

    • Как создать круглую форму на Delphi
    • Delphi, вызываем окно завершение работы Windows
    • Delphi работа с системным реестром
    дима 25 Dec 2008 в 00:00 #
    чет я не понял што икак кидать и где прописывать:(((
    григорий 17 Jul 2008 в 00:00 #
    обана всем респект, как я замучился в поисках такой процедуры, спасибо
    il2 17 Jul 2008 в 00:00 #
    спасибо этот код мне пока не надо, но чувствую что вскорем будущем пригодиться

    ОтменитьДобавить комментарий