![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Снова про прорисовку ListView
Igor_thief © (2005-01-23 15:53:00)Мне очень хочется сделать что-то похожее на thumbnails preview как в ACDSee 7.0. Но пока что не очень то и получается. Дело в том, что у ListView есть несколько событий для прорисовки items и я никак не могу разобраться в каком мне надо делать прорисовку. Прочитал про них в хелпе, но все равно пока что "не врубаюсь" :). Помогите, плиз! ListView при выделения item'a рисует выделение иконки отдельно и текста под ней тоже отдельно. Чтобы выделить элемент, надо нажать именно на иконку (или чуть левее/правее) или на текст. В ACDSee картика выделяется если нажать в любом месте области картинки (под облястью картинки я подразумиваю прямоугольник, в котором находится и картинка и текст). В ListView область очень маленькая, а в ACDSee эту область можна менять. Как ее можна изменить в ListView.
procedure TForm1.ListView1CustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
ARect: TRect;
begin
with ListView1.Canvas do
begin
if cdsSelected in State then
Brush.Color := clSilver
else
Brush.Color := clWhite;
ARect := Item.DisplayRect(drBounds);
// если менять параметры Arect, то рамки верхнего и нижнего ряда вылазят за размеры окон
// а размер горизонтального скрола остается прежним
FillRect(ARect);
Rectangle(ARect);
end; // with
end;
Igor_thief (2005-01-24 14:17:00) [1]Неужели больше никому это не интерессно?