![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблемы с печатью! Информации нет, помогите! [D7, WinXP]
Шоломицкий С. А. © (2006-11-25 13:50:00)Имеется принтер HP 9050.
В нём есть из того что мне нужно: нижний лоток, верхний лоток, лоток ручной подачи.
Мне очень надо уметь печатать с любого из этих трёх лотков.
Облазил весь интернет, нашёл единственный пример, который у меня никак не работат. Вот он:
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;
end;
GlobalUnlock(ADeviceMode);
SetPrinter(ADevice, ADriver, APort, ADeviceMode);
end;
end;
Printer.BeginDoc;
Printer.Canvas.TextOut(50, 50, 'Печать из верхнего лотка');
with DevMode^ do
begin
dmDefaultSource := DMBIN_LOWER;
end;
Printer.NewPageDC(DevMode);
Printer.Canvas.TextOut(50, 50, 'Печать из нижнего лотка');
Printer.EndDoc;
ЗаместоdmDefaultSource := DMBIN_LOWER;иdmDefaultSource := DMBIN_UPPER;можно подставлять цифры (как бы номер лотка).
Ставил самые разные, от 1 до 10..во всех случаях оба листа берутся из нижнего лотка!
Кстати, в коде есть вот это
procedure TPrinter.NewPageDC(DM: PDevMode);
begin
CheckPrinting(True);
EndPage(DC);
if Assigned(DM) then
ResetDC(DC, DM^);
StartPage(DC);
Inc(FPageNumber);
Canvas.Refresh;
end;
Нашёл, что это нужно для изменеиня любых установок во время печати.
Короче, ничего не получается...
А надо очень...
Пожалуйста, помогите!!!!
Андрей Сенченко (2006-11-26 13:10:00) [1]Общественность заинтересована в принципе только двумя вещами из обширного списка "Что да как"
1. DM_DEFAULTSOURCE
2. Собственно как там там повешенье
... отсутствие ответа на 2й вопрос будет воспринято с пониманием.
Шоломицкий С. А. (2006-11-26 00:17:00) [2]Обязательно сообщу, что да как, но только в понедельник(
Leonid Troyanovsky (2006-11-25 15:45:00) [3]
> Anatoly Podgoretsky © (25.11.06 15:33) [8]
> Не нас, а вас
Я уже на полдороги в Баден-Баден.
--
Regards, LVT.
Anatoly Podgoretsky (2006-11-25 15:33:00) [4]> Leonid Troyanovsky (25.11.2006 15:29:07) [7]
Не нас, а вас
Leonid Troyanovsky (2006-11-25 15:29:00) [5]
> Anatoly Podgoretsky © (25.11.06 15:17) [6]
> Это можно сказать только после повешания.
Анатолий, нас могут заподозрить в заинтересованности.
--
Regards, LVT.
Anatoly Podgoretsky (2006-11-25 15:17:00) [6]> Leonid Troyanovsky (25.11.2006 15:13:05) [5]
Это можно сказать только после повешания.
Leonid Troyanovsky (2006-11-25 15:13:00) [7]
> Шоломицкий С. А. (25.11.06 15:10) [4]
> а во тесли нет...то можно вешаться прям((
Перед повешанием, все же, желательно
информировать общественность о срабатывании.
Для пользы будущих поколений, так сказать.
--
Regards, LVT.
Шоломицкий С. А. (2006-11-25 15:10:00) [8]Спасибо большое. Надеюсь сработает...
а во тесли нет...то можно вешаться прям((
Leonid Troyanovsky (2006-11-25 14:19:00) [9]
> Шоломицкий С. А. (25.11.06 14:11) [2]
> хотя данный вами код особо не отличается от того, что я
> написал..
> он вообще, в принципе, такой же(
Этот код, вообще-то, дал Peter Below.
Ну, а отличия, все же, заметны. Например:
dmFields := dmFields or DM_DEFAULTSOURCE;
Кста, Printer это из Printers.pas.
--
Regards, LVT.
Шоломицкий С. А. (2006-11-25 14:11:00) [10]спасибо..жалко я не на работе и не могу это проверить..
хотя данный вами код особо не отличается от того, что я написал..
он вообще, в принципе, такой же(
Leonid Troyanovsky (2006-11-25 14:05:00) [11]
> Шоломицкий С. А. (25.11.06 13:50)
> Облазил весь интернет, нашёл единственный пример,
http://groups.google.com/group/borland.public.delphi.nativeapi.win32/msg/78ab555fb875269c
--
Regards, LVT.