![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вывод данных с TListView на Принтер [D6, D7, 2000, XP]
Officeman © (2007-01-26 13:26:00)сабж.
необходимо распечатать табличку [ListView]. как осуществить?
Сергей М. (2007-01-29 10:24:00) [1]Для генерации отчетов существует огромная куча готовыхкомпонентов (QuickReport, Free/FastReport, RaveReportCrystalReport и т.д. и т.п.). Заниматься самостоятельной генерацией сложного изображения будущего отчета, тем более при таком уровне знаний (если конечно же это не учебная задача) - это мазохизм)
Officeman (2007-01-29 09:48:00) [2]Необходимо рисовать красивую табличку (ПрайсЛист). Заголовки выделять жирненьким. Колличесто полей в табличке 5.
объясните детально почему происходит наложение. какой параметр отвечает за смещение(вывод новой позиции в новом месте)
Спасибо за поддержку топа
evvcom (2007-01-29 09:20:00) [3]> [5] Officeman © (29.01.07 09:06)
> при выводе текста в канвас, где использовать Writeln ??
Нигде.
Writeln - это старый добрый способ печати документа в файл или на принтер. В Delphi его реализация естественно сделана через Printer.Canvas. Помнится, делал двоим двоечникам 2 контрольных работы за соответствующую мзду. Пришлось досконально разобраться с этими 2 способами. Мое имхо, что через AssignPrn/Rewrite/Write/Writeln/CloseFile делать гораздо проще, хотя и менее гибко, но разве тебе гибкость нужна? Хотя ничего не мешает между Write-ами обратиться и напрямую к Printer.Canvas.
Сергей М. (2007-01-29 09:18:00) [4]
> при выводе текста в канвас, где использовать Writeln ?
Нигде. Это из другой оперы.
Либо ты непосредственно с канвой работашь и сам разруливаешь координаты вывода, либо ты поручаешь это ф-ции WriteLn
> пробовал выводить каждую новую строку с шагом
Шаг организуется циклическим инкрементом соотв.координаты на заданное значение, а у тебя этого инкремента, очевидно, нет.
Officeman (2007-01-29 09:06:00) [5]при выводе текста в канвас, где использовать Writeln ??
да я пробовал выводить каждую новую строку с шагом. например
Printer.Canvas.TextOut(10, y+50, LV.Items[i].Caption);
тока это ничё не дало)
evvcom (2007-01-29 09:02:00) [6]> [3] Officeman © (29.01.07 08:40)
Ну так x, y правильно разруливай. Или используй Write/Writeln.
Officeman (2007-01-29 08:40:00) [7]при этом печатает все позиции в одну строку => получается много наложений в начале страницы. т.е. как будто не происходит смещение(перевод на новую строку)
clickmaker (2007-01-26 14:01:00) [8]Printer.BeginDoc();
for i := 0 to LV.Items.Count - 1 do begin
if (i > MaxPageLines) then
Printer.NewPage();
Printer.Canvas.TextOut(x, y, LV.Items[i].Caption);
end;
Printer.EndDoc()
alex_*** (2007-01-26 13:51:00) [9]в текст и на принтер