powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress cxGrid GridMode=True
5 сообщений из 5, страница 1 из 1
DevExpress cxGrid GridMode=True
    #39960522
vladgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброго времени суток!

Подскажите, пожалуйста, есть ли возможность определить выделенные в гриде записи в режиме GridMode=True , когда выделил записи и пролистал несколько экранов вверх/вниз и выделил еще.

Код: pascal
1.
2.
3.
4.
5.
6.
7.
   
 for I := 0 to cxGridPeopleForPeopleFormDBTableView.Controller.SelectedRowCount - 1 do
    begin
     if cxGridPeopleForPeopleFormDBTableView.Controller.SelectedRows[i] <> nil then 
      if cxGridPeopleForPeopleFormDBTableView.Controller.SelectedRows[i].IsData then
     ......
    end;


Вот это условие для пролистанных записей не выполняется, т.е. = nil
Код: pascal
1.
if cxGridPeopleForPeopleFormDBTableView.Controller.SelectedRows[i] <> nil then


Есть ли какая либо возможность узнать какая запись была выделена и поработать с ней в том или инов виде?
...
Рейтинг: 0 / 0
DevExpress cxGrid GridMode=True
    #39960589
zinpub
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgul,

Посмотри GetSelectedBookmark
...
Рейтинг: 0 / 0
DevExpress cxGrid GridMode=True
    #39960631
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: pascal
1.
TcxGridDBTableView().DataController.GetSelectedCount
...
Рейтинг: 0 / 0
DevExpress cxGrid GridMode=True
    #39961157
vladgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
zinpub
vladgul,

Посмотри GetSelectedBookmark

Огромное спасибо за наводку. То что нужно.

Но теперь выплыл еще один вопрос по такому же гриду
Есть ли простой способ сделать следующее:
Выделены несколько записей, которые пользователь хочет удалить
Предварительно пробегаюсь по выделенным записям и проверяю определенное условие при котором нельзя удалять текущую запись.
Раньше (при GridMode=False) было просто
Делал снятие выделения с записи, которую нельзя удалять
и затем делал
Код: pascal
1.
cxGridPeopleForPeopleFormDBTableView.Controller.DeleteSelection;


Сейчас (при GridMode=True) DeleteSelection отрабатывает нормально, но как сбросить выделение текущей записи?

Вот сейчас примерно такой код, после которого будет DeleteSelection
Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
   for I := 0 to cxGridPeopleForPeopleFormDBTableView.DataController.GetSelectedCount - 1 do
    begin
       CurRow := cxGridPeopleForPeopleFormDBTableView.DataController.GetSelectedBookmark(I);
       if DataModuleConfig.Dataset_PeopleForPeopleForm.BookmarkValid(CurRow) then
        begin
         DataModuleConfig.Dataset_PeopleForPeopleForm.Bookmark := CurRow;
         If DataModuleConfig.Dataset_PeopleForPeopleForm.FieldByName('OPERATORSYSTEM').AsInteger=1 then
          begin
           cxGridPeopleForPeopleFormDBTableView.Controller.SelectedRows[i].Selected := False; // Сбрасываем выделение.  [color=blue]Естественно эта строка не работает по причинам описанным в первом посте[/color]
          end;
        end;
    end;



Вижу альтернативный способ, например с сохранением в массив ID выделенных записей, которые проходят проверку и потом удалить их запросом, но так не очень хочется, т.к. на OnBeforeDelete привязана обработка которая выполняет еще для каждой записи дополнительные действия.
...
Рейтинг: 0 / 0
DevExpress cxGrid GridMode=True
    #39961182
ъъъъъ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
vladgul,



ты посмотри, как реализована
Код: pascal
1.
procedure TcxCustomDataProvider.DeleteSelection;


- и вместо её вызова сделай то же самое, но своё: собери список (AList) удаляемых строк, к списку вызови
Код: pascal
1.
DataController.DeleteRecords(AList);



Правда, процедурка
Код: pascal
1.
TcxCustomDataController.DeleteRecords(AList: TList);

- она протектед, так что придется к ней обращаться ч/з "крак-класс".
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / DevExpress cxGrid GridMode=True
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]