» Главная
eXcode.ru » Статьи » Delphi/Pascal » Большой FAQ по Delphi » Синтаксис » Сортировка
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 6





Создать TListView, который автоматически пересортирует при щелчке на заголовке колонки




Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

unit SortedListView;

 interface

 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
   ComCtrls;

 type
   TSortedListView = class(TListView)
   private
     FSortColumn: Integer;
     procedure SetSortColumn(const Value: Integer);
     procedure SortedListViewCompare(Sender: TObject; Item1, Item2: TListItem;
       Data: Integer; var Compare: Integer);
     procedure SortedListViewColumnClick(Sender: TObject; Column: TListColumn);
     { Private declarations }
   protected
     { Protected declarations }
   public
     constructor Create(AOwner: TComponent); override;
     { Public declarations }
   published
     { Published declarations }
     property SortColumn: Integer read FSortColumn write SetSortColumn;
   end;

 implementation

 {==============================================================================}
 { TSortedListView }
 {==============================================================================}
 constructor TSortedListView.Create(AOwner: TComponent);
 begin
   inherited;

   OnColumnClick := SortedListViewColumnClick;
   OnCompare := SortedListViewCompare;
 end;
 {==============================================================================}

 procedure TSortedListView.SetSortColumn(const Value: Integer);
 begin
   FSortColumn := Value;
   AlphaSort;
 end;
 {==============================================================================}

 procedure TSortedListView.SortedListViewColumnClick(Sender: TObject;
   Column: TListColumn);
 begin
   SortColumn := Column.Index;
 end;
 {==============================================================================}

 procedure TSortedListView.SortedListViewCompare(Sender: TObject;
   Item1, Item2: TListItem; Data: Integer; var Compare: Integer);
 begin
   if SortColumn = 0 then
     Compare := CompareText(Item1.Caption, Item2.Caption)
   else
     Compare := CompareText(Item1.SubItems[SortColumn - 1], Item2.SubItems[SortColumn - 1]);
 end;

 end.
К началу статьи





Добавил: LedWormДата публикации: 2005-11-10 19:49:31

Рейтинг статьи:0.00 [Голосов 0]Кол-во просмотров: 2127
Оцените статью:

Комментарии читателей

Всего комментариев: 1

2018-01-13 14:15:33
Nfwmvcf
Платим за лайки! - Оплата сдельная!

Наш сервис предоставляет настоящие лайки на фотографии заказчиков, которые готовы платить за качество.

Именно для этого мы и набираем удалённых сотрудников, которые будут выполнять работу, то есть ставить лайки и получить за это деньги.

Чтобы стать нашим удалённым сотрудником и начать ставить лайки, зарабатывая при этом 45 рублей за 1 поставленный лайк,

достаточно просто зарегистрироваться на нашем сервисе. > www.click-likes.tk <

Вывод заработанных средств ежедневно в течении нескольких минут.
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Вы жалеете, что Билли уходит на пенсию?
Гореть ему в АДУ!!!
41% (53)
Побыстрее бы ушел!
5% (6)
Уйдет он, придет другой!
28% (36)
А мне все равно, я Mac юзаю!
2% (3)
Жаль, дядю Билла :(
12% (15)
Может он передумает?!
13% (17)

Проголосовало: 130
Изобрели суперкомпьютер. Позвали англичанина, немца и русского колхозника и сказали:
- Назовите два числа и компьютер произведет с ними любую операцию. Если он не сможет посчитать, вы получите кучу денег!
Англичанин называет 10^6581 - компьютер все посчитал и его выгнали. Немец называет 236^65468749846 - компьютер все посчитал и его тоже выгнали.
Русский говорит:
- До х#я...
Компьютер зависает. Изобретатели посовещались и решили:
- Поехали к нему в колхоз, наверное, у них там все такие умные!
Приезжают в колхоз, смотрят - мужик поле косит. Подходят к нему и спрашивают:
- Мужик, скажи, а "до х#я" это много?
- Да как вам сказать... Видите поле, которое я кошу? Это до х#я.
- Не поняли... А вот поле через дорогу - это тоже до х#я?
- А это соседское, это до п#зды!!!
Рейтинг: 8.3/10 (7)
Посмотреть все анекдоты