![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TDBGrid
Алексей Петухов © (2003-08-14 09:01:00)
Здравствуйте, уважаемые мастера.
Допустим у нас есть DBGrid, в нем отображон некоторый набор данных.
Мы перемещаемся в некоторую ячейку некоторого столбца и нажимаем клавишу "Enter".
Данные в этой ячейке Выделяются и в ней появляется курсор.
Подскажите пожалуйста, как я могу узнать, что DBGrid находистя в этом состоянии?
Соловьев (2003-08-14 11:06:00) [21]
> 1. У меня DBGrid в "режиме редактирования" (то есть я просто
> нажал Enter в одной из ячеек, но пока ничего там не менял
> - весь текст в ячейке выделен и там мигает курсорчик).
из второго первое не следует, т.е. по миганию курсорчиканельзя сказать что НД уже в режиме редактирования.
Алексей Петухов (2003-08-14 11:01:00) [22]
Ну ладно, значит так:
1. У меня DBGrid в "режиме редактирования" (то есть я просто нажал Enter в одной из ячеек, но пока ничего там не менял - весь текст в ячейке выделен и там мигает курсорчик).
2. Я нажимаю "Esc" или "стрелочка вверх".
3. в теле какого то обработчика выполняется такой код:
ЕслиDBGrid описанном состоянии
тогда
Еслинажата Esc
тогда
ModalResult:=MrCancel
иначе
Если"стрелочка вверх"
тогдаDBGrid.datasourse.dataset.prior;
Вопрос: как осуществить такую проверку?
Johnmen (2003-08-14 10:25:00) [23]
>Reindeer Moss Eater © (14.08.03 10:17) [25]
Совершенно верно :)
Reindeer Moss Eater (2003-08-14 10:17:00) [24]
Потому, что OnKeyPress возникает до перехода в режим редактирования.
У него был режим редактирования, потом нажался Esc, а в обработчике ожидается, что все еще должен быть режим редактирования. Вот и недоумение возникает.
Reindeer Moss Eater (2003-08-14 10:15:00) [25]
Это значит, что нет режима редактирования.
Ты узнал то, что хотел узнать.
Что хочешь узнать еще?
Johnmen (2003-08-14 10:14:00) [26]
>Алексей Петухов (14.08.03 10:12) [22]
Потому, что OnKeyPress возникает доперехода в режим редактирования.
Алексей Петухов (2003-08-14 10:12:00) [27]
установил Form1.KeyPreview:=true;
Все равно в обработчике Form1.OnKeyPress, при описанных выше условиях DBGrid1.EditorMode=false.
Reindeer Moss Eater (2003-08-14 10:05:00) [28]
Что уже нетрежима редактирования?
Reindeer Moss Eater (2003-08-14 10:04:00) [29]
DBGrid1.EditorMode=false
- вот что эначит непомогает.
Не помогает понять, что нетрежима редактирования?
Алексей Петухов (2003-08-14 10:03:00) [30]
DBGrid1.EditorMode
То-же не помогает.
Абалдеть! "Не помогает". А что должно произойти при вычислении этого выражения по твоему? Салют что ли начаться?
DBGrid1.EditorMode=false
- вот что эначит непомогает.
Reindeer Moss Eater (2003-08-14 10:02:00) [31]
Т.е. если я нажму кнопочку на DBGrid-е, произойдет событие Form1.OnKeyPress, так?
Если у формы выставлено KeyPreview, то да.
Алексей Петухов (2003-08-14 10:01:00) [32]
Перенести логику в Form1.OnKeyPress
Т.е. если я нажму кнопочку на DBGrid-е, произойдет событие Form1.OnKeyPress, так?
Johnmen (2003-08-14 09:53:00) [33]
>Алексей Петухов
EditorMode однозначно определяет, находится ли текущая ячейка в режиме редактирования. Т.е. создан ли в данный момент инплейседитор для редактирования...
Reindeer Moss Eater (2003-08-14 09:50:00) [34]
DBGrid1.EditorMode
То-же не помогает.
Абалдеть! "Не помогает". А что должно произойти при вычислении этого выражения по твоему? Салют что ли начаться?
Reindeer Moss Eater (2003-08-14 09:49:00) [35]
то в теле обработчика события DBGrid.OnKeyPress
Перенести логику в Form1.OnKeyPress
Алексей Петухов (2003-08-14 09:43:00) [36]
DBGrid1.EditorMode
То-же не помогает.
hint:
Грид - dataaware компонент. И сам имеет виды на нажатие некоторых кнопок.
И что же делать?
Алексей Петухов (2003-08-14 09:38:00) [37]
Ну так ты получил значение этого выражения, узнав при этом, что датасет не в режиме редактирования.
Отладчиком.
Reindeer Moss Eater (2003-08-14 09:37:00) [38]
потому что DBGrid.DataSource.DataSet.State=dsBrowse.
hint:
Грид - dataaware компонент. И сам имеет виды на нажатие некоторых кнопок.
Johnmen (2003-08-14 09:36:00) [39]
>Алексей Петухов
DBGrid1.EditorMode
Reindeer Moss Eater (2003-08-14 09:35:00) [40]
Ну так ты получил значение этого выражения, узнавпри этом, что датасет не в режиме редактирования.
Еще вопросы?