Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Quantum Grid группировка


Автор: mihan 23.5.2008, 08:54
Использую Quantum Grid недавно.
Есть Grid, на котором один Level и один TableView (vwActionList: TcxGridTableView).
В vwActionList три колонки:
1. clmnAllActionHint
2. clmnAllActionCaption
3. clmnFormName
По колонке clmnFormName осуществляется группировка.
Мне необходимо определять, что в данный момент курсор стоит на группе, а не на конкретной записи. 
Как это можно сделать?
Проблема в том, что даже если курсор стоит на группе, то выделенной считается первая запись в группе.
Код

RecIndex := vwActionList.DataController.FocusedRecordIndex;

На другом форуме посоветовали поэкспериментировать с 
Код

ShowMessage(IntToStr(vwActionList.DataController.FocusedRecordIndex) + #13#10 + IntToStr(vwActionList.Controller.FocusedRecordIndex));

Результат действительно разный, но определить по этой разнице, что именно выделено, также не представляется возможным. Думал над тем, чтобы программно пытаться переводить курсор на след. запись. Но даже это не помогает, потому что группа может быть распахнутой, а может и нет.

Автор: mihan 23.5.2008, 09:52
Вот, что помогло
Код

var
  RoleRecIndex: Integer;
  RoleRowIndex: Integer;
  CurrRowIndex: Integer;
begin
  RoleRecIndex := vwActionList.DataController.FocusedRecordIndex;
  RoleRowIndex := vwActionList.DataController.FocusedRowIndex;
  CurrRowIndex := vwActionList.DataController.GetRowIndexByRecordIndex(RoleRecIndex, False);
  if (CurrRowIndex <> RoleRowIndex) then begin
    ShowMessage('Группа');
  end else begin
    ShowMessage('Элемент');
  end;
end;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)