Создать TListView, который автоматически пересортирует при щелчке на заголовке колонкиDelphi , Синтаксис , СортировкаСоздать TListView, который автоматически пересортирует при щелчке на заголовке колонки
Оформил: DeeCo 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. Обзор кода: Общая информация
Код определяет пользовательский компонент Анализ кода
1. Класс Альтернативное решение
Хотя предоставленный код работает, есть более элегантный способ реализации сортировки без переопределения метода Пример модификации кода для использования
В этом модифицированном коде процедура В статье описывается создание компонента TListView, который автоматически сортирует элементы списка при щелчке на заголовке колонки. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Сортировка ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |