Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 29.10.2007, 11:17
aleksnine aleksnine вне форума
Начинающий
 
Регистрация: 08.03.2007
Сообщения: 151
Репутация: 12
По умолчанию Listview отрисовка

Привет.
Несколько вопросов по отрисовке

Есть
Код:
Tlistview - vsreport - OwneкDraw:=true;


1)
Текст вывожу так
Код:
with (sender as Tlistview).Canvas do begin
TextOut(Rect.Left+18 ,Rect.Top+4,Item.Caption);
TextOut(Rect.Left+(sender as Tlistview).Columns.Items[0].Width ,Rect.Top+4,Item.SubItems[0]);
TextOut(Rect.Left+(sender as Tlistview).Columns.Items[0].Width
+(sender as Tlistview).Columns.Items[1].Width,Rect.Top+4,Item.SubItems[1]);
TextOut(Rect.Left+(sender as Tlistview).Columns.Items[0].Width
+(sender as Tlistview).Columns.Items[1].Width+(sender as Tlistview).Columns.Items[2].Width+3,Rect.Top+4,Item.SubItems[2]);
TextOut(Rect.Left+(sender as Tlistview).Columns.Items[0].Width
+(sender as Tlistview).Columns.Items[1].Width+(sender as Tlistview).Columns.Items[2].Width+3
+(sender as Tlistview).Columns.Items[3].Width,Rect.Top+4,Item.SubItems[3]);
TextOut(Rect.Left+(sender as Tlistview).Columns.Items[0].Width
+(sender as Tlistview).Columns.Items[1].Width+(sender as Tlistview).Columns.Items[2].Width+3
+(sender as Tlistview).Columns.Items[3].Width+(sender as Tlistview).Columns.Items[4].Width,Rect.Top+4,Item.SubItems[4]);
TextOut(Rect.Left+(sender as Tlistview).Columns.Items[0].Width
+(sender as Tlistview).Columns.Items[1].Width+(sender as Tlistview).Columns.Items[2].Width+3
+(sender as Tlistview).Columns.Items[3].Width+(sender as Tlistview).Columns.Items[4].Width
+(sender as Tlistview).Columns.Items[5].Width,Rect.Top+4,Item.SubItems[5]);
 end;
Тут все норм кроме одного . Если длина текста больше ширины колонки , то он рисуется на следующую колонку .
Вопрос : Как сделать обрезание текста , чтоб на конце было '...' ?

2) Чередование цвета строк
Делаю так
Код:
  if trunc((i) / 2) < (i / 2) then
  sender.canvas.brush.Color := color1
 else
  sender.canvas.brush.Color := color2;
Вопрос : как раскрасить весь Listview чередованием даже если он пустой . Так делают во многих проигрывателях . Вот что я хочу получить в итоге -

Спасибо .
Ответить с цитированием
 


Delphi Sources

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

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:54.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025