![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Распечатать три memo.. [D7, XP]
AlexDan © (2009-08-12 13:26:00)на форме рядом находятся три memo, нужно распечатать их содержимое (в смысле так же рядом..). что посоветуете?
p/s.распечатать всю форму не подходит..
Inovet (2009-08-13 10:38:00) [1]Удалено модератором
(2009-08-13 10:30:00) [2]Удалено модератором
AlexDan (2009-08-13 10:26:00) [3]тут подумал, может дело в том, что пытаюсь обьединить в form2.Memo4, которого на форме нет, только описан:
TForm2 = class(TForm)
Memo4: TMemo; ?
но наверно вряд-ли..
AlexDan (2009-08-13 10:22:00) [4]это что, вот так? form2.Memo4.Lines[i]:=Format('%15s%11s%11s',[form2.Memo1.Lines[i],form2.Memo2.Lines[i],form2.Memo3.Lines[i]]);
не работает, и раньше тоже пробовал..
так и пишет:
---------------------------
Debugger Exception Notification
---------------------------
Project Project1.exe raised exception class EAccessViolation with message 'Access violation at address 0047F9E2 in module 'Project1.exe'. Read of address 00000220'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
Юрий Зотов (2009-08-13 10:01:00) [5]1. Запятые надо убрать.
2. Под первую строку будет отведено 15 позиций. Если строка длиннее, то она будет обрезана до 15 символов. Если строка короче, то слева она будет дополнена пробелами до 15 символов.
3. Со второй и третьей строками аналогично, только не 15, а 11.
4. В итоге получим текст в три колонки с выравниванием по правому краю:
___________папа__________у_______Васи
__________силен__________в_математике
_________учится_______папа_________за
___________Васю_______весь________год
Если теперь отобразить этот текст моноширинным шрифтом, то получится, видимо, то, что нужно.
=======================
Другой вариант - сделать то же самое через текстовый файл:
var
F: TextFile;
...
Write(F, Memo1.Lines[i] : 15, Memo2.Lines[i] : 11, Memo3.Lines[i] : 11);
WriteLn(F);
AlexDan (2009-08-13 09:41:00) [6]> Юрий Зотов © (12.08.09 13:39) [7]
можно немного поподробнее, как там с размерами, т.к. выбивает именно здесь (но на компилл пропускает, просто ни разу таким не пользовался)..
form2.Memo4.Lines[i]:=Format('%15s,%11s,%11s',[form2.Memo1.Lines[i],form2.Memo2.Lines[i],form2.Memo3.Lines[i]]);
Amoeba (2009-08-12 15:20:00) [7]Как вариант, можно использовать один из генераторов отчетов.
Сергей М. (2009-08-12 13:49:00) [8]
> нужно чтоб рядом
Надо понимать, что у тебя получается, но не рядом ?)
AlexDan (2009-08-12 13:42:00) [9]> Юрий Зотов © (12.08.09 13:39) [7]
> Format('%s:длина%s:длина%s:длина',
> [Memo1.Lines[i], Memo2.Lines[i], Memo3.Lines[i]]);
ага, спасибо, подумаю.
AlexDan (2009-08-12 13:41:00) [10]Удалено модератором
Юрий Зотов (2009-08-12 13:39:00) [11]Format('%s:длина%s:длина%s:длина',
[Memo1.Lines[i], Memo2.Lines[i], Memo3.Lines[i]]);
{RASkov} (2009-08-12 13:34:00) [12]> [4] AlexDan © (12.08.09 13:32)
> так я и знал
приятно вести беседу со знающими людьми)
{RASkov} (2009-08-12 13:32:00) [13]Строка1 для вывода на канву печати = Lines[0] первого мемы + Lines[0] второго мемы + Lines[0] третьего мемы;
и т.д.
AlexDan (2009-08-12 13:32:00) [14]> {RASkov} © (12.08.09 13:31) [3]
> Написать свой хитрый метод распечатки трех мем...)
так я и знал(, наверно проще их сначала в тхт файл собрать..(
{RASkov} (2009-08-12 13:31:00) [15]> [0] AlexDan © (12.08.09 13:26)
> что посоветуете?
Написать свой хитрый метод распечатки трех мем...)
AlexDan (2009-08-12 13:30:00) [16]нет, просто нужно чтоб рядом..
Сергей М. (2009-08-12 13:28:00) [17]Надо понимать, что с одним-единственным мемом у тебя нет проблем с распечаткой его содержимого ?