|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.09.2011, 15:28 | #1 |
Begin'нер
Пользователь
Регистрация: 30.04.2010
Сообщений: 48
|
проверка фокуса поля в dbgrid
Здравствуйте. Пишу БД на делфи, БД access.
Существуют поля dbgrid1.fields[1] и dbgrid.fields[2] в которые нужно вводить только цифры, как сделать проверку на ввод? Пытался вот так, но не могу найти способ проверить что именно эти поля в фокусе. procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if DBGrid1.Fields[1].FocusControl then if not (Key in ['0', '1'..'9']) then Key:= #0; end; |
21.09.2011, 15:32 | #2 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Попробуйте с DBGrid.SelectedField
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.09.2011, 15:35 | #3 |
Begin'нер
Пользователь
Регистрация: 30.04.2010
Сообщений: 48
|
Спасибо всё получилось. Вот рабочий код:
procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin if (DBGrid1.SelectedField.Name = 'number_gaz') or (DBGrid1.SelectedField.Name = 'number_str') then if not(Key in ['0', '1' .. '9']) then Key := #0; end; |
21.09.2011, 15:36 | #4 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Не забудьте SelectedField может и nil быть
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.09.2011, 15:42 | #5 |
Begin'нер
Пользователь
Регистрация: 30.04.2010
Сообщений: 48
|
В такой случае вызов DBGrid1KeyPress врятли возможен, ведь он считается
когда dbgrid в фокусе и нажата клавиша, а если dbgrid в фокусе то выделено какое - то поле, иначе фокус передать ему не через что в runtime режиме. |
21.09.2011, 16:24 | #6 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Как думаете, что вернет SelectedField, если выбрана ячейка из колонки без фиелда, используемая, например, для прорисовки смайликов в строках грида?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
|
21.09.2011, 17:04 | #7 |
Begin'нер
Пользователь
Регистрация: 30.04.2010
Сообщений: 48
|
nil =) У меня к счастью таких нет, поэтому в моём проекте проверка на nil не существенна
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Проверка поля на надежность | Alex Jordan | БД в Delphi | 3 | 14.06.2011 23:13 |
Поля в DBGrid | Stranger333 | БД в Delphi | 4 | 19.02.2011 00:55 |
Проверка поля (JS)/(html) | Delphinchik | JavaScript, Ajax | 2 | 06.10.2010 21:49 |
сохранение изменений в DBGrid/DBGridEh, при изменении фокуса ячейки | dalien | БД в Delphi | 6 | 30.07.2009 15:36 |
поля в DBgrid | Mihailhome | БД в Delphi | 4 | 19.05.2009 11:24 |