Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

TDBGrid


Страницы:   1 2 3

Алексей Петухов ©   (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]

Ну так ты получил значение этого выражения, узнавпри этом, что датасет не в режиме редактирования.

Еще вопросы?


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо