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



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





Создать 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]Кол-во просмотров: 2230
Оцените статью:

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

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

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

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

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

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

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

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

Пароль:



Регистрация

Какую музыку вы предпочитаете?
Techno
11% (29)
Rap
10% (26)
Rock
48% (126)
Trance
10% (27)
Pop
7% (17)
house
5% (13)
Классическую
7% (19)
Я не слушаю музыку
2% (4)

Проголосовало: 261
Разговор двух заядлых интернетчиков:
- Слышь... это... www.zarplaty.net?
- www.kak.vsegda.net!
- www.kak.zhe.ya.domoy.po.edu?
- www.pesh.com!
Рейтинг: 4.5/10 (2)
Посмотреть все анекдоты