Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вывод данных с 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]

в текст и на принтер


Наверх

Титульная страница Поиск, карта сайта Написать письмо