Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

модуль печати [D7, XP]


Страницы:   1 2

Fynjy ©   (2008-10-13 08:33:00) 

Здрасьте! У меня есть модуль печати (делали до меня), который выводит на печать чертежи из Image. При нажатии кнопки вылетает это факанное око - выбрать пнринтер, количество листотв и т.д.Кто подскажет как сделать принтер по умолчанию и причем виртуальный, чтобы это окно не выскакивало. Еще, при использовании виртуального принтера появляется окно выбора директории для сохранения самого PDF-а, вот оно мне тоже не нужно, доже должно быть по умолчанию. В идеале чтобы вся процедура печати протекала незаметно для пользователя.
Я так понимаю необходимо вручную править что-то в Printer-e?


Anatoly Podgoretsky   (2008-10-13 16:16:00) [1]

> Fynjy  (13.10.2008 15:20:18)  [18]

Скрипач не нужен!


Сергей М.   (2008-10-13 15:30:00) [2]

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=


Правильный$Вася   (2008-10-13 15:28:00) [3]


>  как установить принтер по умолчанию(нужный мне)

вообще-то юзер сам волен выбирать, какой у него будет принтер по умолчанию, нужный ему
это можно сделать в панели управления


Fynjy   (2008-10-13 15:20:00) [4]

НУ, а как установить принтер по умолчанию(нужный мне), где это прописывается? как получить описание принтера и все эти дела?


Anatoly Podgoretsky   (2008-10-13 14:14:00) [5]

> Fynjy  (13.10.2008 10:21:12)  [12]

Ничего писать не надо, если у тебя есть хотя бы один принтер, а если нет, то ничего не поможет.


Сергей М.   (2008-10-13 10:37:00) [6]


> автоматически выбирает твой дефолтный принтер


Угу.

И у тебя тоже таковой имеется, если в системе зарегистрирован хотя бы один принтер.

Спрашивается, с какого перепугу у тебя "окно из Printer вылетает", если дифолтный принтер (каким бы он ни был) определен ?


> где это прописать вручную


Св-во Printer.PrinterIndex указывает индекс принтера в списке Printers, на который будет осуществляться фактический вывод документа.

Метод Printer.SetPrinter позволяет, кроме собственно выбора принтера, установить режимы работы выбираемого устройства.


{RASkov}   (2008-10-13 10:34:00) [7]

> [13] Fynjy   (13.10.08 10:31)

Ты пробывал код из [11]? Что у тебя?

И еще вопрос к тебе:
Что за:

> У меня есть модуль печати(делали до меня), который выводит
> на печать чертежи из Image

?


{RASkov}   (2008-10-13 10:32:00) [8]

А может у автора нет принтера по умолчанию вот ось и интересуется кудаж будем печатать...) Если это вообще так возможно конечно....
:)


Fynjy   (2008-10-13 10:31:00) [9]

что никто не знает?


Fynjy   (2008-10-13 10:21:00) [10]

когда ты жмешь кнопку, он автоматически выбирает твой дефолтный принтер и автоматически пишет OutPut директорию, в данном случае имя порта твоего принтера, а вот где это прописать вручную, вот вчем вопрос


Сергей М.   (2008-10-13 09:36:00) [11]


> Fynjy   (13.10.08 09:14) [8]


Вот простой код:

procedure TForm1.Button3Click(Sender: TObject);
begin
 printer.BeginDoc;
 printer.EndDoc;
end;


Жму кнопку, из моего дифолтного принтера тут же вылазит чистый лист бумаги.
При этом никаких принт-диалогов я не вижу.
Что я делаю неправильно ?


Smile   (2008-10-13 09:33:00) [12]

А как быть с "тайной" личной переписки?
:)


Сергей М.   (2008-10-13 09:30:00) [13]


> я англицкий не очень


И что ?
А Гугль для чего существует ? Или там тоже сплошь и рядом буквы незнакомые ?


> выбор принтера ведь в Printer-e происходит


Да.
Установкой, например, публичногосв-ва PrinterIndex.


Fynjy   (2008-10-13 09:14:00) [14]

я англицкий не очень. Но выбор принтера ведь в Printer-e происходит.


Сергей М.   (2008-10-13 09:05:00) [15]


> ничего тут нет


Действительно, "ничего тут нет".
Сразу BeginDoc - и понеслась нелегкая по кочкам)
А на каком принтере с какими параметрами начинать документ - то одному Пушкину известно.

Чему ж тогда удивляться ?

Ты вообще хэлп штудировал на тему слова "Printer", прежде чем лепить код ?


Fynjy   (2008-10-13 09:00:00) [16]

Вот процедура, ничего тут нет.
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 08:52:00) [17]

Ну верно.
И что ?
Оно же "вылетает" в результате каких-то конкретныхдействий твоей программы.
Так вот чтоэто за действия ?


Fynjy   (2008-10-13 08:49:00) [18]

я так понял это окно - PrintDialog? Верно?


Сергей М.   (2008-10-13 08:43:00) [19]


> это окно из Printer вылетает


Это как это "из Printer вылетает" ?)


Fynjy   (2008-10-13 08:41:00) [20]

нет, но это окно из Printer вылетает, как же быть?


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо