Содержание материала

Code:

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.

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить