PRODUCTS

FEATURED PRODUCT

Create feature-rich Web applications faster with over 60 ASP.NET controls including grid, calendar, menus, navigational controls and much more...

License only 125 EUR See More

SEARCH

LOGIN

Customer login to access products, support information & special benefits.

NEWS ALERTS

Add your e-mail address here to receive the monthly TMS Software alerts.

 

LINKS

EXAMPLE 18

TAdvStringGrid

example 18 : using custom sort sequences

One property and one method make it possible to change the normal sort sequence, ie. from left to right, to any sequence you like. When using QSort or when clicking on a column header, the grid is sorted primarily on the sortcolumn or the column that is clicked on. When items are equal in the sorted column, subsorting goes to the second column (on the right of the primary sort column) etc... Often, this behaviour is not wanted, and therefore, the method QSortIndex and the property SortIndexes have been introduced. The SortIndexes is a list of integers and holds the column index sequence for the sort. Ie, if primary sort column should be 2 and secondary sort column 5 and third sort column 1, this list should hold : 2,5,1. The interface to this list is simple. SortIndexes is derived from TList, so the methods Clear, Add can be used. Setting the sort sequence above results in:

 AdvStringGrid.SortIndexes.Clear;  //clear any previous sequences
 AdvStringGrid.SortIndexes.Add(2); //set primary sort column
 AdvStringGrid.SortIndexes.Add(5); //set secondary sort column
 AdvStringGrid.SortIndexes.Add(1); //set third sort column

The routine in the sample application, to select a few custom sort sequences results in:

procedure TForm1.sortgroupClick(Sender: TObject);
begin
case sortgroup.itemindex of
0:begin
   advstringgrid1.QSort;
  end;
1:begin
    advstringgrid1.SortIndexes.Clear;
    advstringgrid1.SortIndexes.Add(5);
    advstringgrid1.SortIndexes.Add(7);
    advstringgrid1.SortIndexes.Add(1);
    advstringgrid1.QSortIndexed;
  end;
2:begin
    advstringgrid1.SortIndexes.Clear;
    advstringgrid1.SortIndexes.Add(4);
    advstringgrid1.SortIndexes.Add(6);
    advstringgrid1.SortIndexes.Add(3);
    advstringgrid1.QSortIndexed;
  end;
3:begin
    advstringgrid1.SortIndexes.Clear;
    advstringgrid1.SortIndexes.Add(3);
    advstringgrid1.SortIndexes.Add(7);
    advstringgrid1.SortIndexes.Add(1);
    advstringgrid1.QSortIndexed;
  end;
end;

end;


Delphi project & source files for downloading included in the main demos distribution for Delphi.

The project and source files have been written with Delphi 6,7. To use these files in other versions of Delphi, ignore any remarks when opening the form files and save the files. After this, compilation can be done. The error messages are due to properties included in the Delphi 6 form file, but not available in lower versions of Delphi.  

Copyright © 1995 - 2008 TMS Software