Другие языки программирования и технологии
Печуть из 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; Код с одного форума програмистов не проканал что не так? Подскажите пожалуйста и по возможности прокоментируйте строчки
А в чем ошибка-то? Вроде все верно
Prn - переменная в которой будет текст печати, объявлена как текстовый файл. i - счетчик цикла
AssignPrn(Prn) - здесь текстовый файл связывается с принтером по-умолчанию
Rewrite(prn) - начинаем запись в текстовый файл, связанный с принтером, другими словами начинаем печатать на принтер
Printer.Canvas.Font:=Form1.Memo1.Font - устанавливаем шрифт в принтере такой же как в мемо
Printer.Canvas.Font.size=12 - устанавливаем размер шрифта в принтере
writeln(Prn, Strings.Strings в квадратных скобах i) - это в цикле запускается. Здесь просто тупо в принтер отправляется каждая следующая строка из мемо
ну а дальше я думаю понятно. Обрабатывается исключительная ситуация. Ошибок пока не вижу. Пришли проект на мыло, посмотрю в чем проблема
Кстати да. Пока писал - увидел. Надо ж модуль printers в раздел uses добавить. Вот тут подсказал умный человек
Prn - переменная в которой будет текст печати, объявлена как текстовый файл. i - счетчик цикла
AssignPrn(Prn) - здесь текстовый файл связывается с принтером по-умолчанию
Rewrite(prn) - начинаем запись в текстовый файл, связанный с принтером, другими словами начинаем печатать на принтер
Printer.Canvas.Font:=Form1.Memo1.Font - устанавливаем шрифт в принтере такой же как в мемо
Printer.Canvas.Font.size=12 - устанавливаем размер шрифта в принтере
writeln(Prn, Strings.Strings в квадратных скобах i) - это в цикле запускается. Здесь просто тупо в принтер отправляется каждая следующая строка из мемо
ну а дальше я думаю понятно. Обрабатывается исключительная ситуация. Ошибок пока не вижу. Пришли проект на мыло, посмотрю в чем проблема
Кстати да. Пока писал - увидел. Надо ж модуль printers в раздел uses добавить. Вот тут подсказал умный человек
Лучший вариант для печати - это заменить TMemo на TRichEdit !
1. он гораздо удобнее
2. у него уже есть печать: метод Print.
3. Использование AssignPrn вообще не рекомендуется, т. к. это уже морально устаревший метод, т. к. он не даёт 100% совместимость со всеми настройками принтера.
4. Перед печатью также полезно вызывать методы Execute компонентов TPrinterSetup и TPrinterDialog (а вдруг захотят печатать на другом принтере, если их несколько в системе, или же 10 копий) - TRichEdit .Print это всё учитывает, а Ваш метод нет.
1. он гораздо удобнее
2. у него уже есть печать: метод Print.
3. Использование AssignPrn вообще не рекомендуется, т. к. это уже морально устаревший метод, т. к. он не даёт 100% совместимость со всеми настройками принтера.
4. Перед печатью также полезно вызывать методы Execute компонентов TPrinterSetup и TPrinterDialog (а вдруг захотят печатать на другом принтере, если их несколько в системе, или же 10 копий) - TRichEdit .Print это всё учитывает, а Ваш метод нет.
добавь необходимый компонент/модуль и будет тебе счастье
Похожие вопросы
- русскоязычный help для Delphi7 c++ и паскаль
- Хочу начать писать программы. Начать пожалуй с Delphi7.
- Есть здесь кто-нибудь, работающий с Delphi7?
- Delphi7 - как создать линии с единой точкой старта?
- Что легче выучить C++ или Delphi7 ?
- Решить задачу в Delphi7
- Где писать основной код в Delphi7
- как зайти в рекавари на asus memo pad fhd 10
- French Leather Memo Paris и Eau de Memo Memo Paris ваше мнение, пожалуйста)