EhLib 9.2.020 для D7-XE10.2 Токио
Новая версия без исходников
https://downloadly.ir/software/programming/ehlib/
Новая версия без исходников
https://downloadly.ir/software/programming/ehlib/
Что значит "инвертацию сортировки"?? Отсортировать в другую сторону? Или поменять иконки местами?Народ подскажите в EHGrid как инвертацию сортировки сделать без правки исходников, может какие-то настройки есть?
procedure TKDBGridEx.SortColumn(aColumn: TColumnEh;
aSortMarker: TSortMarkerEh; MultiSort: boolean);
//var i : integer;
procedure ClearColSorting;
var
i : integer;
begin
if not (MultiSort) then begin
//если мультисортировка не разрешена - снимаем сортировку со всех колонок
for I := 0 to Columns.Count - 1 do
if (Columns[i].Title.SortMarker <> smNoneEh) then
Columns[i].Title.SortMarker := smNoneEh;
end;
end;
begin
if aColumn.Title.SortMarker <> smNoneEh then begin
//если колонка отсортирована
if ((aSortMarker = smUpEh) and ( aColumn.Title.SortMarker = smUpEh))
or((aSortMarker = smDownEh) and ( aColumn.Title.SortMarker = smDownEh))
then begin
//если направление сортировки и клавиша совпадают
ClearColSorting;
DoSortMarkingChanged;
exit;
end else begin
ClearColSorting;
aColumn.Title.SortMarker := aSortMarker;
DoSortMarkingChanged;
exit;
end;
end else begin
//если колонка еще не отсортирована
ClearColSorting;
aColumn.Title.SortMarker := aSortMarker;
DoSortMarkingChanged;
exit;
end;
end;
Я сделал свой класс на основе TDBGridEh, и добавил процедурку:
Code:procedure TKDBGridEx.SortColumn(aColumn: TColumnEh; aSortMarker: TSortMarkerEh; MultiSort: boolean); //var i : integer; procedure ClearColSorting; var i : integer; begin if not (MultiSort) then begin //если мультисортировка не разрешена - снимаем сортировку со всех колонок for I := 0 to Columns.Count - 1 do if (Columns[i].Title.SortMarker <> smNoneEh) then Columns[i].Title.SortMarker := smNoneEh; end; end; begin if aColumn.Title.SortMarker <> smNoneEh then begin //если колонка отсортирована if ((aSortMarker = smUpEh) and ( aColumn.Title.SortMarker = smUpEh)) or((aSortMarker = smDownEh) and ( aColumn.Title.SortMarker = smDownEh)) then begin //если направление сортировки и клавиша совпадают ClearColSorting; DoSortMarkingChanged; exit; end else begin ClearColSorting; aColumn.Title.SortMarker := aSortMarker; DoSortMarkingChanged; exit; end; end else begin //если колонка еще не отсортирована ClearColSorting; aColumn.Title.SortMarker := aSortMarker; DoSortMarkingChanged; exit; end; end;
Весь код компонента не выкладываю, но принцип должен быть понятен
if need to do changes very quick, use BEYOND COMPARE 4!
That tool is very usual for that oneclick you can copy, move, delete, etc... very very quick!
You can updated it
https://dumpz.ws/threads/utility-dlja-delphi-utilities-for-delphi.33456/page-13#post-480211