Ehlib

XXProger

Турист
Регистрация
22 Фев 2010
Сообщения
11
Реакции
1
Credits
20
Я сделал свой класс на основе TDBGridEh, и добавил процедурку:
Код:
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;

Весь код компонента не выкладываю, но принцип должен быть понятен

как вариант, но я обычно правлю исходник... правда при обновлении компонент приходится заново все вносить =)
 

XXProger

Турист
Регистрация
22 Фев 2010
Сообщения
11
Реакции
1
Credits
20

alexray79

Турист
Регистрация
25 Янв 2009
Сообщения
10
Реакции
0
Credits
14
Подскажите, пожалуйста, как подружить Ehlib и Absolute Database, чтобы работала сортировка и фильтрация как в TMemTableEh?
 

emailx45

Местный
Регистрация
5 Май 2008
Сообщения
3,571
Реакции
2,438
Credits
573
Для просмотра ссылки Войди или Зарегистрируйся

TMemTableEh
TMemTableEh - dataset, which hold data in memory. Its possible consider as an array of records.

Besides, it:
  • Supports a special interface, which allows DBGridEh component to view all data without moving active record.
  • Allows fetch data from TDataDriverEh object (DataDriver property).
  • Allows unload change back in DataDriver, operative or postponed (in dependencies of the CachedUpdates property).
  • Allows to create a master/detail relations on the client (filtering record) or on the external source (updating parameters [Params] and requiring data from DataDriver).
  • Allows once-only (without the dynamic support) sort data, including Calculated and Lookup field.
  • Allows create and fill data in design-time and save data in dfm file of the Form.
  • Allows keep record in the manner of trees. Each record can have record elements-branches and itself be an element to other parental record. Component TDBGridEh supports to show the tree-type structure of these records.
  • Allows to connect to the internal array of other TMemTableEh (via ExternalMemData property) and work with its data: sort, filter, edit.
  • Has interface for requesting list of all unique values in one column of records array, ignoring local filter of the DataSet. TDBGridEh uses this property for automatic filling a list in DropDownBox of the subtitle filter cell.
 

alexray79

Турист
Регистрация
25 Янв 2009
Сообщения
10
Реакции
0
Credits
14
Спасибо, это немного не то, что я хотел узнать.
 

S_Gur

Premium
Регистрация
26 Фев 2007
Сообщения
58
Реакции
8
Credits
1,029
Господа, никто не юзал EhLib под Lazarus? В TPropStorageEh не работает редактор сохраняемых свойств. Есть какие-то решения проблемы?
 

Похожие темы