![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 07.06.2007
Сообщений: 18
|
![]()
Как можно сделать, чтобы в Edit можно было вводить значения от -177 до 177 и чтобы буквы нельзя было вводить?
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 28.11.2007
Сообщений: 1,521
|
![]()
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin // Key — символ, соответствующий нажатой клавише. // Если символ недопустимый, то процедура заменяет его // на символ с кодом 0. В результате этого символ в поле // редактирования не появляется, и у пользователя создается // впечатление, что программа не реагирует на нажатие некоторых // клавиш. case Key of '0'..'9': ; // цифра #8 : ; // клавиша <Back Space> {#13 : Edit1.SetFocus ; // клавиша <Enter>} // остальные символы — запрещены else Key :=Chr(0); // символ не отображать end; end;
Всегда рад помочь!
Последний раз редактировалось Terran; 19.12.2007 в 20:03. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 07.06.2007
Сообщений: 18
|
![]()
Это только цифры вводяться, а как сделать чтобы интервал можно было вводить от -177 до 177
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
![]()
Поставь условие на проверку для Key заданого диапазона! (Key>=-177 and Key<=177) - потом пиши символ!
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... ![]() |
![]() |
![]() |
![]() |
#5 |
Старожил
Регистрация: 13.10.2007
Сообщений: 2,740
|
![]()
if (StrToInt(Edit1.Text)<-177) or (StrToInt(Edit1.Text)>177) then
дальше пиши, что делать (выдать сообщение, начать ввод снова, прервать цикл и т.д.) |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 07.06.2007
Сообщений: 18
|
![]()
Не получаеться с таким условием (key>=-177 and key<=177)
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 02.12.2007
Сообщений: 26
|
![]()
Ну если ты хочеш вводить интервал то придется проверятьть значение Edit уже после ввода в него всех чисел и если они не подходят тогда выдавать сообщение об ошибке. Другого выхода я не вижу при работе с Edit.
|
![]() |
![]() |
![]() |
#8 |
Пользователь
Регистрация: 07.06.2007
Сообщений: 18
|
![]()
Спасибо puporev, ещё вопрос, а в какое событие это можно вписать, а то когда я пишу в OnkeyPress, я тогда вообще ничего не могу ввести
"Is not a valid integer value"? |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 26.04.2007
Сообщений: 440
|
![]()
В OnkeyPress просто надо перевести в тип integer или byte.
integer(key) и сравнивать далее. Я так понял тебе нало реагировать на нажатие клавиш. Тебе нужны OnkeyPress и OnKeyDown. |
![]() |
![]() |
![]() |
#10 |
Участник клуба
Регистрация: 26.10.2007
Сообщений: 1,244
|
![]()
ИМХО при нажатии на клавишу (OnkeyPress) мы впечатываем символ в Едит. При отпускании (OnKeyDown) начинаем проверять значение в Едите... Если превысили, то удаляем последний введённый символ..
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым, Попытка глубже понимать уже попахивает литром... |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) | Albert2008 | Общие вопросы Delphi | 4 | 21.08.2008 15:33 |
Edit | Editor | Общие вопросы Delphi | 10 | 25.06.2008 19:52 |
Edit | Михаил Юрьевич | Общие вопросы Delphi | 4 | 31.05.2008 23:05 |
вопрос о Edit-е | 1234 | Общие вопросы Delphi | 6 | 05.03.2008 13:55 |
Вопрос по Edit | Lonix | Компоненты Delphi | 1 | 03.04.2007 20:11 |