Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1131342513
WondeRu
2005-11-07 08:48
2005.11.27
Полет в одну сторону


2-1131714238
De1uxe
2005-11-11 16:03
2005.11.27
Помогите


14-1131116793
DeCode
2005-11-04 18:06
2005.11.27
Проблема с установкой ХР


14-1130868063
Bogdan1024
2005-11-01 21:01
2005.11.27
Помогите собрать комп!!!


2-1131828265
zxc
2005-11-12 23:44
2005.11.27
как рисовать на Tpanel?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский