Форум: "Основная";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
ВнизProgressBar в ListView? Найти похожие ветки
← →
dracula © (2005-10-31 22:34) [0]Проблема моя в следующем, вставляю прогресбары в листвиев, всё ок, но есть одно но, мне надо при изменении размеров колонки в листе менять размер прогрессбара, но это ещё победы (это я хоть представляю как надо делать), а при прокрутке листвиев?????????
так добавляем в лист прогресбар,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;
а как его к ячейке привязать, чтоб с ней двигался, никак не соображу, может кто знает решение.
← →
skiph © (2005-11-01 10:13) [1]Скорее всего нужно переопределить OnDraw в ListView.
← →
Amoeba © (2005-11-01 10:18) [2]А может лучше не вставлять всякие там прогрессбары, а просто имитировать их соответствующей прорисовкой в OnDraw?
← →
Игорь Шевченко © (2005-11-01 10:27) [3]Так он вроде двигается сам при скролле ?
← →
dracula © (2005-11-01 12:40) [4]нет он не двигается, не туды, не сюды =), а может есть какой компонент листвиев с поддержкой прогрессбара?
>А может лучше не вставлять всякие там прогрессбары, а просто
> имитировать их соответствующей прорисовкой в OnDraw?
к сожалению это не подходит, надо именно прогрессбар.
← →
Lin7 © (2005-11-01 13:12) [5]
> dracula © (01.11.05 12:40) [4]
> а может есть какой
> компонент листвиев с поддержкой прогрессбара?
VirtualTreeView
Немного тяжеловат и непривычен в использовании, но бесплатен и до чего хорош!! :)
Есть режимы TreeView, ListView и др.
Удачи!
← →
dracula © (2005-11-01 13:53) [6]Всё решил проблему:
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
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.11.27;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.014 c