AdvStringGrid сортировка

15.10.2011
Основным применением компонентов отображающих данные в табличном виде является собственно просмотр и анализ этих данных. А для лучшего анализа данных лучше всего нам поможет группировка и сортировка данных в компоненте AdvStringGrid.

Сортировка


Давайте добавим на нашу форму сам AdvStringGrid с следующими параметрами:
AdvStringGrid1.RowCount := 10;

AdvStringGrid1.ColCount := 5;
AdvStringGrid1.FixedCols := 0;

И заполним его при создании формы:
procedure TForm1.FormCreate(Sender: TObject);

var
i, j: integer;
begin
for i := 1 to 9 do
for j := 0 to 5 do
AdvStringGrid1.Cells[j, i] := inttostr(i) + inttostr(j);
end;


А теперь рассмотрим три основных свойства:
AdvStringGrid1.SortSettings.Show: Boolean;

AdvStringGrid1.SortSettings.Column: Integer;
AdvStringGrid1.SortSettings.Direction: TSortDirection;

Первый отвечает за то, включена или отключена сортировка.
Второй, указывает по какому столбцу будет сортировка по умолчанию.
Третий, способ сортировки по умолчанию (по убыванию или по возрастанию).
Например:
AdvStringGrid1.SortSettings.Show := True;

AdvStringGrid1.SortSettings.Column := 0;
AdvStringGrid1.SortSettings.Direction := sdAscending;


Ещё одной очень полезной функцией является сортировка по нескольким столбцам, для начала нужно включить возможность такой сортировки:
AdvStringGrid1.SortSettings.IndexShow := True;

Во вторых, определить с помощью зажатия какой клавиши будет производится сортировка (можно выбрать клавишу Ctrl или Shift)
AdvStringGrid1.SortSettings.IndexSortKey := ikCtrl;

Это означает что зажав клавишу Ctrl мы сможем сортировать данные на нескольких столбцах. При этом столбцы будут помечаться цифрами 1, 2, 3 и т.д. в порядке вложенности сортировки.