Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 27.10.2013, 18:21
Delphi_Source Delphi_Source вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
Восклицание Устройства вывода. Работа с принтером

Доброго времени суток, уважаемые пользователи!
Помогите разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста.
Спасибо за внимание!
Ответить с цитированием
  #2  
Старый 27.10.2013, 18:53
Аватар для M.A.D.M.A.N.
M.A.D.M.A.N. M.A.D.M.A.N. вне форума
Sir Richard Abramson
 
Регистрация: 05.04.2008
Сообщения: 5,505
Версия Delphi: XE10
Репутация: выкл
По умолчанию

Класс TPrinter.
__________________
— Как тебя понимать?
— Понимать меня не обязательно. Обязательно меня любить и кормить вовремя.


На Delphi, увы, больше не программирую.
Рекомендуемая литература по программированию
Ответить с цитированием
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение:
Delphi_Source (07.11.2013)
  #3  
Старый 31.10.2013, 07:41
Аватар для Alegun
Alegun Alegun вне форума
LMD-DML
 
Регистрация: 12.07.2009
Адрес: Богородское
Сообщения: 3,025
Версия Delphi: D7E
Репутация: 1834
По умолчанию

Цитата:
...Приложение должно иметь возможность настройки шрифта выводимого текста...
Код:
procedure TForm1.Button1click(sender: tobject); 
begin 
 if FontDialog1.Execute then Memo1.Font:= FontDialog1.Font; 
end;
Цитата:
...Помогите разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл...
Код:
uses Printers; 
procedure TForm1.Button2Click(sender: tobject); 
var 
 Prn: TextFile; 
 i: integer; 
begin 
 AssignPrn(Prn); // Переназначаем вывод в файл на вывод в принтер 
 Rewrite(Prn); // Готовим принтер к печати
 Printer.Canvas.Font:= Memo1.Font; 

 // Цикл печати: 
 for i := 0 to Memo1.lines.Count - 1 do Writeln(Prn, Memo1.Lines[i]); 

 CloseFile(Prn);

end;
Ответить с цитированием
Этот пользователь сказал Спасибо Alegun за это полезное сообщение:
Delphi_Source (07.11.2013)
  #4  
Старый 17.11.2013, 19:27
Delphi_Source Delphi_Source вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от Alegun
Код:
procedure TForm1.Button1click(sender: tobject); 
begin 
 if FontDialog1.Execute then Memo1.Font:= FontDialog1.Font; 
end;
Код:
uses Printers; 
procedure TForm1.Button2Click(sender: tobject); 
var 
 Prn: TextFile; 
 i: integer; 
begin 
 AssignPrn(Prn); // Переназначаем вывод в файл на вывод в принтер 
 Rewrite(Prn); // Готовим принтер к печати
 Printer.Canvas.Font:= Memo1.Font; 

 // Цикл печати: 
 for i := 0 to Memo1.lines.Count - 1 do Writeln(Prn, Memo1.Lines[i]); 

 CloseFile(Prn);

end;

Почему не выводится ничего в текстовый файл, а сразу идет на печать?
Ответить с цитированием
  #5  
Старый 17.11.2013, 19:36
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Delphi_Source
Почему не выводится ничего в текстовый файл, а сразу идет на печать?
А где здесь вывод в файл? Для вывода в файл нужно использовать AssignFile вместо AssignPrn.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Delphi_Source (17.11.2013)
  #6  
Старый 17.11.2013, 19:44
Delphi_Source Delphi_Source вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
А где здесь вывод в файл? Для вывода в файл нужно использовать AssignFile вместо AssignPrn.

Ошибка такого плана:

Цитата:
[Error] Unit1.pas(48): Not enough actual parameters
Ответить с цитированием
  #7  
Старый 17.11.2013, 19:52
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Delphi_Source
Цитата:
Сообщение от poli-smen
А где здесь вывод в файл? Для вывода в файл нужно использовать AssignFile вместо AssignPrn.
Ошибка такого плана:
Цитата:
[Error] Unit1.pas(48): Not enough actual parameters
Что в переводе означает "Не хватает фактических параметров".
Чтобы узнать какие параметры требует для своего вызова функция AssignFile - стаём на неё курсором и нажимаем F1.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Delphi_Source (17.11.2013)
  #8  
Старый 17.11.2013, 19:57
Delphi_Source Delphi_Source вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Что в переводе означает "Не хватает фактических параметров".
Чтобы узнать какие параметры требует для своего вызова функция AssignFile - стаём на неё курсором и нажимаем F1.

Delphi syntax - это?

Там просто выбился кусочек кода и описание этого параметра на английском языке
Изображения
Тип файла: jpg delphi.JPG (83.4 Кбайт, 2 просмотров)

Последний раз редактировалось Delphi_Source, 17.11.2013 в 20:02.
Ответить с цитированием
  #9  
Старый 17.11.2013, 20:04
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Delphi_Source
Delphi syntax - это?

Там просто выбился кусочек кода и описание этого параметра на английском языке
Код:
AssignFile(Prn, 'C:\ПутьКФайлу\ИмяФайла.txt');
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Delphi_Source (17.11.2013)
  #10  
Старый 17.11.2013, 20:21
Delphi_Source Delphi_Source вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Код:
AssignFile(Prn, 'C:\ПутьКФайлу\ИмяФайла.txt');

Начало выводить содержимое компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл, но принтер почему-то не печатает.
До момента редактирования печать с поля Memo была, теперь почему-то не идет

Последний раз редактировалось Delphi_Source, 17.11.2013 в 20:23.
Ответить с цитированием
  #11  
Старый 17.11.2013, 20:28
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Delphi_Source
Начало выводить содержимое компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл, но принтер почему-то не печатает.
До момента редактирования печать с поля Memo была, теперь почему-то не идет
Ну правильно. Если нужно выводить в файл - используешь AssignFile. Если нужно выводить на принтер - используешь AssingPrn. Если нужно выводить и в файл и на принтер делаешь 2 переменные типа TextFile - к одной применяешь AssingPrn к другой AssignFile и выводишь данные в обе переменные.
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Delphi_Source (17.11.2013)
  #12  
Старый 17.11.2013, 20:31
Delphi_Source Delphi_Source вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Ну правильно. Если нужно выводить в файл - используешь AssignFile. Если нужно выводить на принтер - используешь AssingPrn. Если нужно выводить и в файл и на принтер делаешь 2 переменные типа TextFile - к одной применяешь AssingPrn к другой AssignFile и выводишь данные в обе переменные.

Можно подробнее об этих 2-х переменных?
Как должен выглядеть этот код?
Ответить с цитированием
  #13  
Старый 17.11.2013, 20:42
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Delphi_Source
Можно подробнее об этих 2-х переменных?
Как должен выглядеть этот код?
Код:
uses Printers;
 
procedure TForm1.Button2Click(sender: tobject); 
var
  Prn, Txt: TextFile; 
  i: integer; 
begin
  AssignPrn(Prn); // Переназначаем вывод в файл на вывод в принтер 
  AssignFile(Txt, 'C:\ПутьКФайлу\ИмяФайла.txt');
  Rewrite(Prn); // Готовим принтер к печати
  Rewrite(Txt);
  Printer.Canvas.Font:= Memo1.Font; 

  // Цикл печати: 
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    Writeln(Prn, Memo1.Lines[i]); 
    Writeln(Txt, Memo1.Lines[i]); 
  end;
 
  CloseFile(Prn);
  CloseFile(Txt);
end;
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Delphi_Source (17.11.2013)
  #14  
Старый 17.11.2013, 20:59
Delphi_Source Delphi_Source вне форума
Прохожий
 
Регистрация: 01.10.2013
Сообщения: 32
Версия Delphi: Delphi 7
Репутация: 10
По умолчанию

Цитата:
Сообщение от poli-smen
Код:
uses Printers;
 
procedure TForm1.Button2Click(sender: tobject); 
var
  Prn, Txt: TextFile; 
  i: integer; 
begin
  AssignPrn(Prn); // Переназначаем вывод в файл на вывод в принтер 
  AssignFile(Txt, 'C:\ПутьКФайлу\ИмяФайла.txt');
  Rewrite(Prn); // Готовим принтер к печати
  Rewrite(Txt);
  Printer.Canvas.Font:= Memo1.Font; 

  // Цикл печати: 
  for i := 0 to Memo1.Lines.Count - 1 do
  begin
    Writeln(Prn, Memo1.Lines[i]); 
    Writeln(Txt, Memo1.Lines[i]); 
  end;
 
  CloseFile(Prn);
  CloseFile(Txt);
end;


Теперь выдает печать на прямую. Раньше было стандартное диалоговое окно для выбора параметров печати (см. вложение).
Это из-за отсутствия компонента TPrintDialog?
Изображения
Тип файла: jpg printer.JPG (32.8 Кбайт, 3 просмотров)
Ответить с цитированием
  #15  
Старый 17.11.2013, 21:10
Аватар для poli-smen
poli-smen poli-smen вне форума
Профессионал
 
Регистрация: 06.08.2012
Адрес: Кривой Рог
Сообщения: 1,791
Версия Delphi: Delphi 7, XE2
Репутация: 4415
По умолчанию

Цитата:
Сообщение от Delphi_Source
Теперь выдает печать на прямую. Раньше было стандартное диалоговое окно для выбора параметров печати (см. вложение).
Это из-за отсутствия компонента TPrintDialog?
Да. Но присутствия компонента TPrintDialog недостаточно для вывода этого диалогового окна - ещё нужно вызвать метод Execute этого компонента:
Код:
if PrintDialog1.Execute then // Если пользователь нажал кнопку "ОК" в диалоге печати...
begin
  // ... тогда печатаем
end;
Ответить с цитированием
Этот пользователь сказал Спасибо poli-smen за это полезное сообщение:
Delphi_Source (17.11.2013)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 18:25.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter