![]() |
|
#1
|
|||
|
|||
![]() Добрый день. Появилась неоюходимость вывода на принтер...
Поискал в нете код взыл такой: Код:
procedure TForm1.Button2Click(Sender: TObject); const TOTAL_PAGES = 4; // Ñêîëüêî ñòðàíèö ïå÷àòàòü var printDialog : TPrintDialog; page, startPage, endPage : Integer; begin // Ñîçäàíèå äèàëîãà âûáîðà ïðèíòåðà printDialog := TPrintDialog.Create(Form1); // Óñòàíîâêà îïöèé äèàëîãà ïå÷àòè printDialog.MinPage := 1; printDialog.MaxPage := TOTAL_PAGES; printDialog.ToPage := TOTAL_PAGES; printDialog.Options := [poPageNums]; // Åñëè ïîëüçîâàòåëü âûáðàë ïðèíòåð (èëè çíà÷åíèå ïî óìîë÷àíèþ), òî ïå÷àòàåì! if printDialog.Execute then begin // Èñïîëüçóéòå ôóíêöèþ Printer, ÷òîáû ïîëó÷èòü äîñòóï ê ãëîáàëüíîìó îáúåêòó TPrinter. // Set to landscape orientation Printer.Orientation := poLandscape; // Óñòàíîâèòå çàãîëîâîê printjob - êàê îíî ïîÿâëÿåòñÿ â ìåíåäæåðå çàäàíèÿ ïî âûâîäó íà ïå÷àòü Printer.Title := 'Test print for Delphi'; // Óñòàíàâëèâàåì ÷èñëî êîïèé äëÿ ïå÷àòè êàæäîé ñòðàíèöû Printer.Copies := printDialog.Copies; // Íà÷àëî ïå÷àòè Printer.BeginDoc; // Ïîëüçîâàòåëü âûáðàë äèàïàçîí ñòðàíèö? if printDialog.PrintRange = prPageNums then begin startPage := printDialog.FromPage; endPage := printDialog.ToPage; end else // Âñå ñòðàíèöû begin startPage := 1; endPage := TOTAL_PAGES; end; // Óñòàíîâêà íîìåðà íà÷àëüíîé ñòðàíèöû page := startPage; // Ïðîäîëæàåì ïå÷àòàòü ïîêà âñ¸ OK while (not Printer.Aborted) and Printer.Printing do begin // Ïèøåì íîìåð ñòðàíèöû Printer.Canvas.Font.Color := clBlue; Printer.Canvas.TextOut(40, 20, 'Page number = '+IntToStr(page)); // Óâåëè÷èâàåì íîìåð ñòðàíèöû Inc(page); // Òåïåðü íà÷èíàåì íîâóþ ñòðàíèöó - åñëè îíà íå ïîñëåäíÿÿ if (page <= endpage) and (not printer.aborted) then Beep(); //Printer.NewPage; end; // Êîíåö ïå÷àòè Printer.EndDoc; end; end; , ошибка таймаут. еще пробывал - программа тупо зависает а на принтер вообще ничего не выводится... Вопрос, что неправильного в показаном коде и как с этим бороться? И еще небольшой вопрос: как узнать (получить) максимальную ширину окна программы? |