(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

Delphi Уроки: компонент ProgressBar внутри компонента ListView

Источник: delphiexpert
Владимир Любаев

Всем HI, в этом уроке мы научимся вставлять в компонент ListView компонент ProgressBar. Открываем delphi, кидаем на форму компонент ListView, 2 компонента button и компонент Timer. Для начала нам нужно создать 2 столбца в компоненте ListView, выделяем его, находим свойство columns и жмем по нему. Появиться небольшое окошечко, в котором нужно два раза нажать на кнопку с изображением желтой папки (Add New). Как вы наверно уже поняли, только что мы создали 2 колонки в компоненте ListView, но они пока еще не отображаються, что бы это исправить находим свойство ViewStyle и выставляем в нем значение на vsReport. Все на этом предварительные настроки завершены. Начинаем кодить.

компонент listview delphi

Выделяем первую кнопку, при нажатии на неё пользователь будет добавлять строки (содержащие в себе компонент ProgressBar) в компонент ListView. Итак, создаем обработчик событий OnClick на первой кнопке. Полный код обработчика событий приведен ниже, посмотрите на него и допишите к себе недостающие строки.

procedure TForm1.Button1Click(Sender: TObject);
const
pbColumnIndex = 1;
pbMax = 100;
var
li : TListItem;
lv : TListView;
pb : TProgressBar;
pbRect : TRect;
begin
lv := ListView1;
li := lv.Items.Add;
li.Caption := 'Item ' + IntToStr(lv.Items.Count);
pb := TProgressBar.Create(nil);
pb.Parent := lv;
li.Data := pb;
pbRect := li.DisplayRect(drBounds);
pbRect.Left := pbRect.Left +
lv.Columns[-1 + pbColumnIndex].Width;
pbRect.Right := pbRect.Left +
lv.Columns[pbColumnIndex].Width;
pb.BoundsRect := pbRect;
end;

Так добавлять строки в компонент ListView мы научились, осталось научиться их удалять. Для этого нам и понадобиться вторая кнопка. Выделяем её и создаем на ней обработчик событий OnClick. Опять же полный код обработчика приведен ниже, посмотрите на него и добавьте к себе недостающие строки.

procedure TForm1.Button2Click(Sender: TObject);
var
lv : TListView;
li : TListItem;
i, idx : integer;
pb : TProgressBar;
begin
lv := ListView1;
li := lv.Selected;
if li <> nil then
begin
idx := li.Index;
TProgressBar(li.Data).Free;
lv.Items.Delete(idx);
for i := idx to -1 + lv.Items.Count do
begin
li := lv.Items.Item[i];
pb := TProgressBar(li.Data);
pb.Top := pb.Top -
(pb.BoundsRect.Bottom -
pb.BoundsRect.Top);
end;
end;
end;

Сейчас я хочу немного оживить компонент ProgressBar и сделать так что бы Progress увеличивался. Вот тут то нам на помощь приходит компонент Timer, выделяем его и создаем на нем обработчик событий Ontime. Полный код обработчика представлен ниже:

procedure TForm1.Timer1Timer(Sender: TObject);
var
idx : integer;
pb: TProgressbar;
lv : TListView;
begin
lv := ListView1;
if lv.Items.Count = 0 then Exit;
idx := Random(lv.Items.Count);
pb := TProgressBar(lv.Items[idx].Data);
if pb.Position < pb.Max then
pb.StepIt
else
pb.Position := 0;
end;

Да и не забудьте свойство Enabled у компонента Timer выставить в значение true

На этом все, как видите ничего сложного, запускаем проект и наслаждаться результатами !

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 13.06.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Enterprise Connectors (1 Year term)
Delphi Professional Named User
Купить Антивирус Dr.Web Server Security Suite для сервера
Quest Software. Toad for SQL Server Development Suite
The BAT! Home Upgrade- 1 компьютер
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование в AutoCAD
СУБД Oracle "с нуля"
Новые материалы
Программирование на Visual Basic/Visual Studio и ASP/ASP.NET
Corel DRAW - от идеи до реализации
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100