Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Вниз
модуль печати Найти похожие ветки
← →
Fynjy (2008-10-13 08:33) [0]Здрасьте! У меня есть модуль печати (делали до меня), который выводит на печать чертежи из Image. При нажатии кнопки вылетает это факанное око - выбрать пнринтер, количество листотв и т.д.Кто подскажет как сделать принтер по умолчанию и причем виртуальный, чтобы это окно не выскакивало. Еще, при использовании виртуального принтера появляется окно выбора директории для сохранения самого PDF-а, вот оно мне тоже не нужно, доже должно быть по умолчанию. В идеале чтобы вся процедура печати протекала незаметно для пользователя.
Я так понимаю необходимо вручную править что-то в Printer-e?
← →
Сергей М. © (2008-10-13 08:39) [1]
> необходимо вручную править что-то в Printer-e
Не трогай генофонд !)
Не ты его создавал - не тебе его и править)
> При нажатии кнопки вылетает это факанное око
Обработчик события ее нажатия святой дух писал ?
← →
Fynjy (2008-10-13 08:41) [2]нет, но это окно из Printer вылетает, как же быть?
← →
Сергей М. © (2008-10-13 08:43) [3]
> это окно из Printer вылетает
Это как это "из Printer вылетает" ?)
← →
Fynjy (2008-10-13 08:49) [4]я так понял это окно - PrintDialog? Верно?
← →
Сергей М. © (2008-10-13 08:52) [5]Ну верно.
И что ?
Оно же "вылетает" в результате каких-то конкретных действий твоей программы.
Так вот что это за действия ?
← →
Fynjy (2008-10-13 09:00) [6]Вот процедура, ничего тут нет.
procedure TPrintForm.btbPrintClick(Sender: TObject);
var
BarCode: string;
begin
if IsPrint and (not IsAdmin) then
if ( not ( MessageDlg( "Âû óæå ðàñïå÷àòûâàëè ýòîò ÷åðòåæ! Ïðîäîëæèòü?", mtWarning,[mbOk,mbCancel], 0 ) = mrOk ) )
then Exit;
// Óñòàíàâëèâàåì ØÒÐÈÕ-ÊÎÄ
XYBar.X := imgBar.Left;
XYBar.Y := imgBar.Top;
// Ïðîåâåðÿåì çàïîëíåíèå îáÿçàòåëüíûõ ïîëåé
if (cbFor.Text = "Ââåäèòå ôàìèëèþ ïîëó÷àòåëÿ äîêóìåíòà") or (cbFor.Text = "") then
begin
ShowMessage("Íåîõîäèìî çàïîëíèòü ïîëå "Äëÿ êîãî" ");
cbFor.SelectAll;
CbFor.SetFocus;
exit;
end;
if (cbReason.Text = "Ââåäèòå ïðè÷èíó ïå÷àòè äîêóìåíòà") or (cbReason.Text = "") then
begin
ShowMessage("Íåîáõîäèìî çàïîëíèòü ïîëå "Ïðè÷èíà ïå÷àòè"");
cbReason.SelectAll;
cbReason.SetFocus;
exit;
end;
if (cbDiv.Text = "Ââåäèòå îòäåë-ïîëó÷àòåëü äîêóìåíòà") or (cbDiv.Text = "") then
begin
ShowMessage("Íåîáõîäèìî çàïîëíèòü ïîëå "Îòäåë"");
cbDiv.SelectAll;
cbDiv.SetFocus;
exit;
end;
// Ãåíåðèì øòðèõ-êîä è çàïèñûâàåì åãî â áàçó
if not InputBarBase(BarCode) then
begin
MessageDlg("Îøèáêà ãåíåðàöèè øòðèõ-êîäà. Ïîïðîáóéòå åùå ðàç", mtWarning,[mbOk],0);
exit; // åñëè îøèáêà çàïèñè â ÁÄ, òî íå ïå÷àòàåì
end;
// Ïå÷àòàåì äîêóìåíò
with Printer do begin
BeginDoc;
with Canvas do begin
StretchDraw(Rect, Img.Picture.Graphic);
Font.Name := "EanBwrP36Tt";
Font.Size := 30;
TextOut( Round(XYBar.X * ScalePr), Round(XYBar.Y * ScalePr), BarCode);
end;
EndDoc;
end;
ModalResult := mrOk;
end;
← →
Сергей М. © (2008-10-13 09:05) [7]
> ничего тут нет
Действительно, "ничего тут нет".
Сразу BeginDoc - и понеслась нелегкая по кочкам)
А на каком принтере с какими параметрами начинать документ - то одному Пушкину известно.
Чему ж тогда удивляться ?
Ты вообще хэлп штудировал на тему слова "Printer", прежде чем лепить код ?
← →
Fynjy (2008-10-13 09:14) [8]я англицкий не очень. Но выбор принтера ведь в Printer-e происходит.
← →
Сергей М. © (2008-10-13 09:30) [9]
> я англицкий не очень
И что ?
А Гугль для чего существует ? Или там тоже сплошь и рядом буквы незнакомые ?
> выбор принтера ведь в Printer-e происходит
Да.
Установкой, например, публичного св-ва PrinterIndex.
← →
Smile (2008-10-13 09:33) [10]А как быть с "тайной" личной переписки?
:)
← →
Сергей М. © (2008-10-13 09:36) [11]
> Fynjy (13.10.08 09:14) [8]
Вот простой код:procedure TForm1.Button3Click(Sender: TObject);
begin
printer.BeginDoc;
printer.EndDoc;
end;
Жму кнопку, из моего дифолтного принтера тут же вылазит чистый лист бумаги.
При этом никаких принт-диалогов я не вижу.
Что я делаю неправильно ?
← →
Fynjy (2008-10-13 10:21) [12]когда ты жмешь кнопку, он автоматически выбирает твой дефолтный принтер и автоматически пишет OutPut директорию, в данном случае имя порта твоего принтера, а вот где это прописать вручную, вот вчем вопрос
← →
Fynjy (2008-10-13 10:31) [13]что никто не знает?
← →
{RASkov} © (2008-10-13 10:32) [14]А может у автора нет принтера по умолчанию вот ось и интересуется кудаж будем печатать...) Если это вообще так возможно конечно....
:)
← →
{RASkov} © (2008-10-13 10:34) [15]> [13] Fynjy (13.10.08 10:31)
Ты пробывал код из [11]? Что у тебя?
И еще вопрос к тебе:
Что за:
> У меня есть модуль печати (делали до меня), который выводит
> на печать чертежи из Image
?
← →
Сергей М. © (2008-10-13 10:37) [16]
> автоматически выбирает твой дефолтный принтер
Угу.
И у тебя тоже таковой имеется, если в системе зарегистрирован хотя бы один принтер.
Спрашивается, с какого перепугу у тебя "окно из Printer вылетает", если дифолтный принтер (каким бы он ни был) определен ?
> где это прописать вручную
Св-во Printer.PrinterIndex указывает индекс принтера в списке Printers, на который будет осуществляться фактический вывод документа.
Метод Printer.SetPrinter позволяет, кроме собственно выбора принтера, установить режимы работы выбираемого устройства.
← →
Anatoly Podgoretsky © (2008-10-13 14:14) [17]> Fynjy (13.10.2008 10:21:12) [12]
Ничего писать не надо, если у тебя есть хотя бы один принтер, а если нет, то ничего не поможет.
← →
Fynjy (2008-10-13 15:20) [18]НУ, а как установить принтер по умолчанию(нужный мне), где это прописывается? как получить описание принтера и все эти дела?
← →
Правильный$Вася (2008-10-13 15:28) [19]
> как установить принтер по умолчанию(нужный мне)
вообще-то юзер сам волен выбирать, какой у него будет принтер по умолчанию, нужный ему
это можно сделать в панели управления
← →
Сергей М. © (2008-10-13 15:30) [20]http://www.google.ru/search?complete=1&hl=ru&newwindow=1&client=firefox-a&rls=org.mozilla%3Aru%3Aofficial&hs=vQg&q=Delphi+setprinter+DEVMODE&btnG=%D0%9F%D0%BE%D0%B8%D1%81%D0%BA&lr=lang_ru&aq=f&oq=
← →
Anatoly Podgoretsky © (2008-10-13 16:16) [21]> Fynjy (13.10.2008 15:20:18) [18]
Скрипач не нужен!
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2008.11.23;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.006 c