| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Selected Row in DBGrid |
| Автор: Guest_Andrey 25.2.2003, 19:56 |
| Posle operazii "refresh" DataSet dlja DBGrid, "Selected Row" ustanavlivaetsja v pologenie First. Kak izbegat" pereskakivanie Kursora s odnogo pologenija v drugoe v DataSet posle Refresh??? Ili kakoe svojstvo DBGrid otvechaet za nomer vibrannoj zapisi, choto bi mogno bilo zapomnit" tekushuju zapis" i posle refresh vernut" "Selected Row" v pologenie do Refresh? Spasibo, Andrey |
| Автор: Medved 25.2.2003, 20:11 | ||
| Обратитесь к DataSet для получения текущей записи, на которой стоит курсор. К выбранным записям можно обратиться через SelectedRows (DBGrid1.SelectedRows) Для слежением за изменением состояния набора данных, можно обрадабывать событие TDataSource OnStateChange. Избежать перескакивание курсора никак нельзя, можно только его "возвращать" на прежнее место, после Refresh. Лучше всего для этого использовать Bookmark. Вот пример пробежки по выделенным строчкам в DBGrid и занесения значения выделенного поля в массив:
|
| Автор: Guest_Andrey 25.2.2003, 20:26 |
| a kakaja komanda peremeshaet kursor DBGrid v neobxodimoe pologenie? |
| Автор: Medved 25.2.2003, 20:38 |
| никакая, так как DBGrid - это лишь компонент для отображения данных, которые храняться в текущем НД. Если вам необходимо переместить курсор, то вы просто переходите на нужную запись в НД (наборе данных). А курсор в DBGrid-е переместиться автоматически. |
| Автор: Pakshin A. S. 25.2.2003, 23:48 |
| Как мне помнится, есть такая вещь, как SelectedIndex. Если запомнить его значение до Refreshа и попробовать его восстановить после его выполнения, то, наверное, можно достичь желаемого результата. |
| Автор: Medved 26.2.2003, 00:03 | ||
можно и так.... |