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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 30.04.2008, 18:42   #1
Патрон
Форумчанин
 
Аватар для Патрон
 
Регистрация: 07.03.2008
Сообщений: 151
По умолчанию Печать TMemo

Подскажите пожалуйста как сделать чтобы по нажатии на кнопку "Печать" выводилось такое окно как у стандартного блокнота в Windows, и печаталось так же как и написано в TMemo? Я сам над этим думал... но вот все, чего я смог добится:
Код:
uses
 Printers;
procedure TForm1.N12Click(Sender: TObject);
var
  To_Prn : TextFile;
begin
  N12.Enabled:=false;
  AssignPrn(To_Prn);
  Rewrite(To_Prn);
  Writeln(To_Prn, Memo1.Text);
  CloseFile(To_Prn);
end;
Всем заранее большое спасибо.

Последний раз редактировалось Патрон; 30.04.2008 в 18:45.
Патрон вне форума Ответить с цитированием
Старый 30.04.2008, 19:26   #2
Gladiator
Пользователь
 
Аватар для Gladiator
 
Регистрация: 18.04.2008
Сообщений: 70
По умолчанию

Похожее окно на то что в блокноте получается.....
кидаешь на форму TPrintDialog с панели Dialogs..
А в своем коде сразу после Begin добавь
if PrintDialog1.Execute then begin
..
..
ну и естественно end;
Gladiator вне форума Ответить с цитированием
Старый 30.04.2008, 19:54   #3
Патрон
Форумчанин
 
Аватар для Патрон
 
Регистрация: 07.03.2008
Сообщений: 151
По умолчанию

Цитата:
Сообщение от Gladiator Посмотреть сообщение
Похожее окно на то что в блокноте получается.....
кидаешь на форму TPrintDialog с панели Dialogs..
А в своем коде сразу после Begin добавь
if PrintDialog1.Execute then begin
..
..
ну и естественно end;
А что от этого изменилось? только бумагу перевел мне нужно чтобы мой блокнот печатал также как и стандартный блокнот в Windows, а тут строки разбиты, и шрифт мелкий
Патрон вне форума Ответить с цитированием
Старый 30.04.2008, 20:06   #4
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

Шрифт задаётся в Tmemo, хотя лучше использовать RichEdit, можно положение текста регулировать вот так:
Код:
var
  i:integer;
begin
printer.BeginDoc;
for i:=0 to Memo1.Lines.Count-1 do
begin
printer.Canvas.TextOut(5 {-Отступ слева}, i+15 {-Отступ сверху}, memo1.lines.strings[i]);
end;
printer.EndDoc;
end;
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 30.04.2008, 21:05   #5
Патрон
Форумчанин
 
Аватар для Патрон
 
Регистрация: 07.03.2008
Сообщений: 151
По умолчанию

скажите ПОЖАЛУЙСТА функцию НОРМАЛЬНОЙ печати текста в TMemo!

Последний раз редактировалось Патрон; 30.04.2008 в 22:00.
Патрон вне форума Ответить с цитированием
Старый 01.05.2008, 08:58   #6
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

Вот ещё один метод:
Код:
var
 t:textfile;
 i:integer;
begin
 assignprn(t);
 rewrite(t);
for i:=0 to memo1.lines.count-1 do
writeln(f, memo1.lines.strings[i]);
closefile(f);
end;
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 01.05.2008, 14:44   #7
Патрон
Форумчанин
 
Аватар для Патрон
 
Регистрация: 07.03.2008
Сообщений: 151
По умолчанию

ну уже со строками все впорядке, но шрифт по-прежнему мелкий

Последний раз редактировалось Патрон; 01.05.2008 в 14:50.
Патрон вне форума Ответить с цитированием
Старый 01.05.2008, 14:48   #8
N!ckeL
Форумчанин
 
Регистрация: 29.03.2008
Сообщений: 300
По умолчанию

Цитата:
шрифт мелкий
в memo регулируется шрифт..
Цитата:
строки разбиваются
это как? Можно поподробнее..
Карп преодолевший водопад становится драконом.
N!ckeL вне форума Ответить с цитированием
Старый 01.05.2008, 17:24   #9
Патрон
Форумчанин
 
Аватар для Патрон
 
Регистрация: 07.03.2008
Сообщений: 151
По умолчанию

Цитата:
Сообщение от N!ckeL Посмотреть сообщение
в memo регулируется шрифт..

это как? Можно поподробнее..
не знаю, он не регулируется, т.е. в Memo шрифт менять можно а на бумаге он мелкий а строки, например в Memo написать столбцом и распечатать, то на бумаге они как будто слитные...
Патрон вне форума Ответить с цитированием
Старый 01.05.2008, 21:00   #10
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

в примере от nickel добавить

printer.canvas.fornt.size:=20; или любое другое число
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
TMemo Valera Помощь студентам 14 04.08.2008 10:56
TMemo terminadoor Помощь студентам 10 23.07.2008 19:41
Фон в TMemo BlackOmen Общие вопросы Delphi 3 18.06.2008 22:34
Tmemo BlackOmen Общие вопросы Delphi 2 16.03.2008 21:03