|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
как изменить положение выделенной строки в дбгрид?
Добрый день,
если можно помогите разобраться со своими ошибками. Задача: Options.gdRowSelect = True Необходимо перемещаться в ДБгрид используя только клавиатуру, то есть только стрелки вверх и вниз везде на форумах написано для этого необходимо использовать вызовы Код:
DBGrid.DataSource.DataSet.Next; DBGrid.DataSource.DataSet.Prior; или Код:
DBGrid.DataSource.DataSet.MoveBy(TComponent(Sender).Tag); DBGrid.SetFocus; НО При использовании таких вызовов, происходит изменение положения “курсора” (не знаю, как более правильно сказать ) но новая строка не становится выделенной. DBGrid.SelectedRows.Count возвращает «0» то есть условно: есть выделенная 5-я строка (DBGrid.SelectedRows.Count возвращает «1») выполняется нажатие клавиши стрелка вниз должна выделятся 6-я строка (ожидаю DBGrid.SelectedRows.Count = 1 ) но 6-я строка не выделяется и выделение с 5-й строки тоже снимается. как изменить положение выделенной строки в дбгрид? как выделить другую строку при нажатии на стрелку вниз? |
#2
|
||||
|
||||
Уж больно сложно вы катаетесь по вашему TDataSet.
Что мешает напрямую обратиться к TTable или TQuery (смотря чем выбираете данные их БД) строчками: Код:
TTable.Next; TTable.Prior; вместо: Код:
DBGrid.DataSource.DataSet.Next; DBGrid.DataSource.DataSet.Prior; |
#3
|
||||
|
||||
Цитата:
Не стоит путать форумы с богадельнями. © Bargest |
#4
|
||||
|
||||
DBGrid.SelectedRows.Count возвращает количество выделенных строк при включенном флаге Multiselect. Если же флаг не включен или же не удерживается на клавиатуре Shift, выделено будет всегда одна строка соответствующая положению курсора в датасете.
Возникает вопрос, что же вам на самом деле нужно? Узнать положение курсора относительно начала данных? Узнать положение курсора относительно видимой части данных? Узнать положение первой выделенной строки относительно начала данных? Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#5
|
|||
|
|||
Прошу извинить, забыл видимо написать самую главную часть
Options.dgMultiSelect установлено в TRUE Как при перемещении стрелками вниз вверх, менять выделение строки? то есть условно: есть выделенная 5-я строка (DBGrid.SelectedRows.Count возвращает «1») выполняется нажатие клавиши стрелка вниз должна выделятся 6-я строка (ожидаю DBGrid.SelectedRows.Count = 1 ) но 6-я строка не выделяется и выделение с 5-й строки тоже снимается. то есть DBGrid.SelectedRows.Count = 0 |