Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.005 c
2-1223818412
Yura
2008-10-12 17:33
2008.11.23
Где найти описание - DBGridEh? (или статью с примерами)


2-1223445414
Девушка
2008-10-08 09:56
2008.11.23
cxGrid столбец типа ImageComboBox отобразить значение поля


2-1223627971
Zlo
2008-10-10 12:39
2008.11.23
Транзакции


2-1223575600
programmer90
2008-10-09 22:06
2008.11.23
Завершение работы Windows


2-1223738086
Виктор008
2008-10-11 19:14
2008.11.23
вопрос по Delphi 2009





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский