Правильная ссылка на эту страницу
http://az-design.ru/Support/SoftWare/Delphi/D3/SB58CustomSort.shtml

Глава 58. TListView.CustomSort

Метод CustomSort

Затрагиваемые объекты Все элементы управления представлением в виде списка
Назначение Метод CustomSort позволяет сортировать элементы в элементе управления представлением в виде списка на основе определенных критериев.
Объявление function CustomSort(SortProc: TLVCompare; lParam: Longmt): Boolean;
Параметры  
    SortProc Адрес функции обратного вызова.
    IParam Необязательные данные, которые должны быть посланы функции обратного вызова.
Пример синтаксиса
//  Объявление  функции обратного вызова

function MyCustomSort(Item1,Item2: TListItem; ParamSort: Integer): Integer; stdcall;
//  Реализация функции обратного вызова

function MyCustomSort(Item1,Item2: TListItem; ParamSort: Integer): Integer; stdcall;
begin
//  сравнить две строки, обратить результат 
   Result := lstrcmp(PChar(TListltem(Iteml).Caption),
                     PChar(TListItem(Item2).Caption));

end;
// Вызвать  функцию обратного вызова для сортировки элементов  представления 
//в виде  списха по убыванию 

procedure TForml.SortltemsReverseAlphabeticallylClick(Sender: TObject);
begin
  ListView1.CustomSort(@MyCustomSort, 0); 

end;
Описание Метод AlphaSort позволяет сортировать элементы представления в виде списка в алфавитном порядке, но если необходим любой другой тип сортировки, вместо него может использоваться метод CustomSort. Метод CustomSort требует реализации функции обратного вызова, выполняющей сравнение, используемое в качестве основы сортировки. Параметр SortProc содержит адрес этой функции обратного вызова (с использованием записи @ языка Object Pascal). Параметр IParam может содержать необязательное 32-разрядное целочисленное значение. Если IParam не нужно использовать, просто установите его в 0. В вышеприведенном примере кода производится сортировка элементов представления в виде списка в обратном алфавитном порядке. Вначале необходимо написать объявление и реализацию функции, которая будет вызвана при обращении к CustomSort. В вышеприведенном примере это функция MyCustomSort. Функция обратного вызова может иметь любое имя, но должна принимать следующую форму:

function FuncName(Item1,Item2: TListItem; ParamSort: Integer): Integer; stdcall;

Параметры Iteml и Item2 это два сравниваемых элемента представления в виде списка. ParamSort — необязательное значение, переданное в параметре IParam. Если первый элемент должен быть расположен перед вторым элементом, функция обратного вызова возвращает отрицательное значение. Если первый элемент в результате сортировки должен быть расположен после второго элемента, она возвращает положительное значение. Если эти два элемента идентичны, функция обратного вызова возвращает 0.
[Свойство AllocBy] [Метод AlphaSort] [Метод Arrange] [Свойство BoundingRect] [Свойство Column] [Свойство ColumnClick] [Свойство Columns] [Метод CustomSort] [Свойство DropTarget] [Метод FindCaption] [Метод FindData] [Метод GetItemAt] [Метод GetNearestItem] [Метод GetNextItem] [Свойство IconOptions] [Метод IsEditing] [Свойство ItemFocused] [Свойство Items] [Свойство LargeImages] [Свойство MultiSelect] [Событие OnChange] [Событие OnChanging] [Событие OnColumnClick] [Событие OnCompare] [Событие OnDeletion] [Событие OnEdited] [Событие OnEditing] [Событие OnInsert] [Свойство ReadOnly] [Метод Scroll] [Свойство SelCount] [Свойство Selected] [Свойство ShowColumnHeaders] [Свойство SmallImages] [Свойство SortType] [Свойство StateImages] [Метод StringWidth] [Метод UpdateItems] [Свойство ViewOrigin] [Свойство VisibleRowCount]

<<< Пред. Оглавление
Начало раздела
След. >>>




Дата последнего изменения:
Thursday, 21-Aug-2014 09:10:55 MSK


Постоянный адрес статьи:
http://az-design.ru/Support/SoftWare/Delphi/D3/SB58CustomSort.shtml