Другие языки программирования и технологии

Печуть из memo в Delphi7 как?

procedure PrintMemo(Strings: TStrings); Var Prn: TextFile; i: word; begin AssignPrn(Prn); try Rewrite(Prn); try Printer.Canvas.Font:=Form1.Memo1.Font; Printer.Canvas.Font.size=12; for i := 0 to Strings.Count - 1 do writeln(Prn, Strings.Strings); finally CloseFile(Prn); end; except on EInOutError do MessageDlg('Ошибка печати текста.', mtError, [mbOk], 0); end; end; Код с одного форума програмистов не проканал что не так? Подскажите пожалуйста и по возможности прокоментируйте строчки
IB
Igor Bogatichev
162
А в чем ошибка-то? Вроде все верно
Prn - переменная в которой будет текст печати, объявлена как текстовый файл. i - счетчик цикла
AssignPrn(Prn) - здесь текстовый файл связывается с принтером по-умолчанию
Rewrite(prn) - начинаем запись в текстовый файл, связанный с принтером, другими словами начинаем печатать на принтер
Printer.Canvas.Font:=Form1.Memo1.Font - устанавливаем шрифт в принтере такой же как в мемо
Printer.Canvas.Font.size=12 - устанавливаем размер шрифта в принтере
writeln(Prn, Strings.Strings в квадратных скобах i) - это в цикле запускается. Здесь просто тупо в принтер отправляется каждая следующая строка из мемо
ну а дальше я думаю понятно. Обрабатывается исключительная ситуация. Ошибок пока не вижу. Пришли проект на мыло, посмотрю в чем проблема
Кстати да. Пока писал - увидел. Надо ж модуль printers в раздел uses добавить. Вот тут подсказал умный человек
Константин С
Константин С
8 321
Лучший ответ
Лучший вариант для печати - это заменить TMemo на TRichEdit !
1. он гораздо удобнее
2. у него уже есть печать: метод Print.

3. Использование AssignPrn вообще не рекомендуется, т. к. это уже морально устаревший метод, т. к. он не даёт 100% совместимость со всеми настройками принтера.
4. Перед печатью также полезно вызывать методы Execute компонентов TPrinterSetup и TPrinterDialog (а вдруг захотят печатать на другом принтере, если их несколько в системе, или же 10 копий) - TRichEdit .Print это всё учитывает, а Ваш метод нет.
добавь необходимый компонент/модуль и будет тебе счастье
АГ
Али Гаюров
9 830