Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.10.2013, 18:48   #1
Programmer_Forum
 
Регистрация: 01.10.2013
Сообщений: 9
Восклицание Устройства вывода. Работа с принтером

Доброго времени суток, уважаемые пользователи!
Помогите разработать приложение для вывода содержимого компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл. Приложение должно иметь возможность настройки шрифта выводимого текста.
Спасибо за внимание!
Programmer_Forum вне форума Ответить с цитированием
Старый 27.10.2013, 19:20   #2
Vanta11a
Lawful Evil
Участник клуба
 
Аватар для Vanta11a
 
Регистрация: 13.05.2008
Сообщений: 1,208
По умолчанию

Язык? Наработки? Размер благодарности?
Алгоритм - бесплатен. Поиск багов - бесплатен. Реализация алгоритма - за отдельную плату.
На форуме помогают советами и объясняют, а не пишут на халяву программы, лабы, курсачи и т.д. (c)
Vanta11a вне форума Ответить с цитированием
Старый 27.10.2013, 19:49   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с использованием вывода на принтер, как в текстовый файл
Тоесть? Поясни эту фразу.
Можно кстати в классике посмотреть: http://delphiworld.narod.ru/base/print_strings.html
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.11.2013, 19:25   #4
Programmer_Forum
 
Регистрация: 01.10.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Vanta11a Посмотреть сообщение
Язык? Наработки?
Язык: Delphi
Наработки:

Код:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Printers, StdCtrls;

type
  TForm1 = class(TForm)
    Button1: TButton;
    Button2: TButton;
    Memo: TMemo;
    FontDialog1: TFontDialog;
    PrintDialog1: TPrintDialog;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1click(sender: tobject); 
begin
 if FontDialog1.Execute then Memo.Font:= FontDialog1.Font;
end;

procedure TForm1.Button2Click(sender: tobject); 
var i:integer;
Prn:TextFile;
begin
//Если запущен диалог печати и не было отмены
if PrintDialog1.Execute then begin
//Задание количества копий
Printer.Copies:=PrintDialog1.Copies;
//Задание параметров шрифта
Printer.Canvas.Font.Name:='Times New Roman';
Printer.Canvas.Font.Size:=14;
//Связывание текстового файла с принтером по умолчанию
AssignPrn(Prn);
try
//Открытие файла для записи
Rewrite(Prn);
try
//Вывод строк из поля Memo
for i := 0 to Memo.Lines.Count - 1 do
writeln(Prn, Memo.Lines[i]);
finally
//Закрытие принтера
CloseFile(Prn);
end;
except
//Сообщение при ошибке
on EInOutError do
MessageDlg('Ошибка печати текста.', mtError, [mbOk], 0);
end;
end;
end;


end.
Однако, не получается вывести содержимое компонента класса TMemo на печать с использованием вывода на принтер, как в текстовый файл.

Что не так?

Почему не выводится ничего в текстовый файл, а сразу идет на печать?
Programmer_Forum вне форума Ответить с цитированием
Старый 17.11.2013, 19:32   #5
ZX Spectrum-128
Участник клуба
 
Регистрация: 05.11.2013
Сообщений: 1,601
По умолчанию

Так и должно быть. Prn - это принтер. Сообщ. #3 читали?
ZX Spectrum-128 вне форума Ответить с цитированием
Старый 17.11.2013, 19:35   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
с использованием вывода на принтер, как в текстовый файл.
Нужно не так делать. Если хочешь использовать принтер как текстовое устройство то нужно его открыть и посылать на печать как в файл:
Код:
f:text;
...
assignfile(f,'LPT1'); rewrite(f);
writeln(f,'text');
closefile(f);
...
иллюстрирует один из методов работы с LPT принтером.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 17.11.2013, 19:41   #7
Programmer_Forum
 
Регистрация: 01.10.2013
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Нужно не так делать. Если хочешь использовать принтер как текстовое устройство то нужно его открыть и посылать на печать как в файл:
Код:
f:text;
...
assignfile(f,'LPT1'); rewrite(f);
writeln(f,'text');
closefile(f);
...
иллюстрирует один из методов работы с LPT принтером.
Куда этот код вставить?
Programmer_Forum вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с принтером на Com-порте Mixim C# (си шарп) 5 24.02.2013 15:02
DirectShow: Захват звука со входного устройства без вывода на колонки BLACK_RAIN Мультимедиа в Delphi 0 22.02.2013 12:11
Работа с принтером и сервак. a123-flex Фриланс 1 09.09.2009 22:29
Работа с принтером Proof Общие вопросы Delphi 1 20.06.2008 20:23
работа с принтером (ну или что-то подобное) Рустам Win Api 2 03.02.2008 16:24