![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
TAdvStringGrid - конроль ввода в ячейку [D5]
kserg@ukr.net © (2002-05-17 10:50:00)кто работал с TAdvStringGrid подскажите мне, как сделать контроль ввода в ячейку данных в формате hh:mm.
Я пытаюсь организовать след.путем:
- в событии OnEditMask задаю маску ввода Value:="!90:00;1;_";
- а в событии OnCellValidate делаю
try
ETime:= StrToTime(Value);
valid:= true;
except
MessageDlg("Incorrect time "+Value,MtError,[mbOk],0);
valid:= false;
end;
Но алгоритм где-то не закрывает "дыру".
Напр.: ввожу 59:00, жму ENTER - срабатывает контроль, вылетает месага, возврат фокуса к ред-нию некорректного значения, но если я повторно жму ENTER - то контроль уже не работает.
(я подозреваю, что не наступает само событие редактирования)
Тоже самое, если после набора некорректного времени я мышкой жму в др.ячейку: контроль срабатывает (месага вылетает), но фокус всё равно перемещается в новую ячейку, а в старой остается некорректное значение.
помогите, а то уже задолбася отлавливать...
KilkennyCat (2002-05-18 02:51:00) [1]смотри ответ на свойи предыдущие вопросы.
kserg@ukr.net (2002-05-17 17:44:00) [2]>KilkennyCat © (17.05.02 16:17)
а пример можешь подкинуть?
я такое делал, но для TEdit-a, где просто контролировал ввод числа безо всякой маски
KilkennyCat (2002-05-17 16:17:00) [3]я же уже отвечал... у меня все работает.
Можно просто отлавливать все нажатия клавиш в данной ячейке.
то есть, контролировать позицию и разрешать только цифры и только одного диапазона. Получится программная маска, простая и надежная.
kserg@ukr.net (2002-05-17 13:14:00) [4]раз никто такого не делал, то хоть мыслю подкиньте :-)
kserg@ukr.net (2002-05-17 11:54:00) [5]так всё таки - какие еще события задействовать, чтоб контроль вводимого времени был более строгим