![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ProgressBar в ListView?
dracula © (2005-10-31 22:34:00)Проблема моя в следующем, вставляю прогресбары в листвиев, всё ок, но есть одно но, мне надо при изменении размеров колонки в листе менять размер прогрессбара, но это ещё победы (это я хоть представляю как надо делать), а при прокрутке листвиев?????????
так добавляем в лист прогресбар,
var
r: TRect;
pb: TProgressBar;
--------------------------------------------------
r := Listview1.Items[i].DisplayRect(drBounds);
r.Left := r.Left + Listview1.columns[0].Width;
r.Right := r.Left + Listview1.columns[1].Width;
pb := TProgressBar.Create(Self);
pb.Parent := Listview1;
pb.BoundsRect := r;
pb.Position := 0;
pb.Height := 10;
Listview1.Items[i].Data := pb;
а как его к ячейке привязать, чтоб с ней двигался, никак не соображу, может кто знает решение.
dracula (2005-11-01 13:53:00) [1]Всё решил проблему:
procedure TForm1.ListViewCustomDrawSubItem(Sender: TCustomListView;
Item: TListItem; SubItem: Integer; State: TCustomDrawState;
var DefaultDraw: Boolean);
var
R: TRect;
begin
if not ((Item.Index in [0, 2, 4]) and (SubItem = 1)) then Exit;
ListView_GetSubItemRect(Item.Handle, Item.Index, SubItem, LVIR_BOUNDS, @R);
case Item.Index of
0: clListViewProgressBar1.Draw(ResourceState, Sender.Canvas, R);
2: clListViewProgressBar2.Draw(ResourceState, Sender.Canvas, R);
4: clListViewProgressBar3.Draw(ResourceState, Sender.Canvas, R);
end;
DefaultDraw := False;
end;
VirtualTreeView - посмотрю ещё что это такое, но вроде всё заработало как надо, с прокруткой и изменением размеров прогрессбара. Прогрессбар от clInetSuite. Кстати реальный прогресс - как в emule и edonkey
Lin7 (2005-11-01 13:12:00) [2]
> dracula © (01.11.05 12:40) [4]
> а может есть какой
> компонент листвиев с поддержкой прогрессбара?
VirtualTreeView
Немного тяжеловат и непривычен в использовании, но бесплатен и до чего хорош!! :)
Есть режимы TreeView, ListView и др.
Удачи!
dracula (2005-11-01 12:40:00) [3]нет он не двигается, не туды, не сюды =), а может есть какой компонент листвиев с поддержкой прогрессбара?
>А может лучше не вставлять всякие там прогрессбары, а просто
> имитировать их соответствующей прорисовкой в OnDraw?
к сожалению это не подходит, надо именно прогрессбар.
Игорь Шевченко (2005-11-01 10:27:00) [4]Так он вроде двигается сам при скролле ?
Amoeba (2005-11-01 10:18:00) [5]А может лучше не вставлятьвсякие там прогрессбары, а просто имитироватьих соответствующей прорисовкой в OnDraw?
skiph (2005-11-01 10:13:00) [6]Скорее всего нужно переопределить OnDraw в ListView.