Блог


Последние записи


Теги

Информация

Delphi, DevExpress, примеры, решения

Фильтр по тегу: сортировка


Сортировка TStringDynArray

не забудьте подключить
uses
System.Generics.Collections, System.Generics.Defaults;


procedure Foo;
var
  arrFiles: TStringDynArray;
begin

//получаем список каких-то файлов
  arrFiles := GetListDocs('d:\MyFiles\RootDir');

//сортируем
  TArray.Sort<string>(arrFiles, TStringComparer.Ordinal);

end;
добавлено: 14 авг 20 просмотры: 624, комментарии: 0



cxGrid группировка с сортировкой по другому столбцу

Для нормальной работы сортировки надо писать так:

procedure TForm2.cxGrid1DBBandedTableView1DataControllerCompare(
  ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
  AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin
if ADataController.Values[ARecordIndex1, {Индекс столбца}] < ADataController.Values[ARecordIndex2, {Индекс столбца}] then
   Compare := -1
else
   if ADataController.Values[ARecordIndex1, {Индекс столбца}] = ADataController.Values[ARecordIndex2 {Индекс столбца}] then
     Compare := 0
   else
     Compare := 1;
end;



Для сортировки по столбцу №2 код будет выглядеть следующим образом:
procedure TForm2.cxGrid1DBBandedTableView1DataControllerCompare(
  ADataController: TcxCustomDataController; ARecordIndex1, ARecordIndex2,
  AItemIndex: Integer; const V1, V2: Variant; var Compare: Integer);
begin
if ADataController.Values[ARecordIndex1, 2] < ADataController.Values[ARecordIndex2, 2] then
   Compare := -1
else
   if ADataController.Values[ARecordIndex1, 2] = ADataController.Values[ARecordIndex2, 2] then
     Compare := 0
   else
     Compare := 1;
end;



Отсюда: https://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=712712&msg=12748829
добавлено: 12 июл 12 просмотры: 3260, комментарии: 0