![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ввод в MaskEdit [D7, XP]
RomanH © (2006-03-20 11:03:00)Доброе утро мастера. Имеется маска (000;0;) в MaskEdit.Как программно ограничить ввод именно трехзначного числа т.е. в обработчике события MaskEditExit сообщить ошибку
Application.MessageBox('Введите трехзначное число.',
'Ошибка ввода',MB_ICONERROR+MB_OK);
if length(MaskEdit1.Text)<9 then так не получается заранее благодарен
Leonid Troyanovsky (2006-03-21 08:25:00) [1]
> XeON © (21.03.06 01:09) [2]
> Вот тебе полнейший ответ на твой вопрос.
Конечно же, нет.
Полный ответ предусматривал бы обработку EDBEditError.
См., например,
http://groups.google.com/group/fido7.ru.delphi.chainik/msg/61581e447c1a19ba
--
Regards, LVT.
XeON (2006-03-21 01:09:00) [2]Попробуй поставить значение MaxLength в 3. А потом в каком-нибудь Button1 пишешь процедуру проверки:
procedure TForm1.Button1Click(Sender: TObject);
var
i:Integer;
begin
try
i:=StrToInt(MaskEdit1.Text);
if i<100 then ShowMessage('Введите трёхзначное число');
except
ShowMessage('Введите трёхзначное число');
end;
end;
Вот тебе полнейший ответ на твой вопрос. Можно ещё сделать проверку на то, что бы число не было больше 999. Но т.к. длина вводимого текста ограничена 3 символами - больше чем 999 ввести не получиться!
Будут вопросы - пиши на мыло. (оно указанно в анкете).
Leonid Troyanovsky (2006-03-20 11:31:00) [3]
> RomanH © (20.03.06 11:03)
> if length(MaskEdit1.Text)<9 then так не получается заранее
> благодарен
А почему 9, если уж оно трехзначное?
Для проверки можно попытаться преобразовать его к целому.
Хотя, такая проверка делается самим TMaskEdit и если
не введены все три цифры, то возбуждается исключение (EDBEditError)
Invalid input value. Use escape key to abandon changes.
--
Regards, LVT.