Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.12.2007, 19:41   #1
ByteMan
Пользователь
 
Регистрация: 07.06.2007
Сообщений: 18
По умолчанию Вопрос про Edit

Как можно сделать, чтобы в Edit можно было вводить значения от -177 до 177 и чтобы буквы нельзя было вводить?
ByteMan вне форума Ответить с цитированием
Старый 19.12.2007, 20:01   #2
Terran
Участник клуба
 
Аватар для Terran
 
Регистрация: 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.
Terran вне форума Ответить с цитированием
Старый 19.12.2007, 20:11   #3
ByteMan
Пользователь
 
Регистрация: 07.06.2007
Сообщений: 18
По умолчанию

Это только цифры вводяться, а как сделать чтобы интервал можно было вводить от -177 до 177
ByteMan вне форума Ответить с цитированием
Старый 19.12.2007, 20:42   #4
Yurk@
Участник клуба
 
Аватар для Yurk@
 
Регистрация: 19.12.2007
Сообщений: 1,100
Восклицание

Поставь условие на проверку для Key заданого диапазона! (Key>=-177 and Key<=177) - потом пиши символ!
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ...
Yurk@ вне форума Ответить с цитированием
Старый 19.12.2007, 20:50   #5
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

if (StrToInt(Edit1.Text)<-177) or (StrToInt(Edit1.Text)>177) then
дальше пиши, что делать (выдать сообщение, начать ввод снова, прервать цикл и т.д.)
puporev вне форума Ответить с цитированием
Старый 19.12.2007, 20:51   #6
ByteMan
Пользователь
 
Регистрация: 07.06.2007
Сообщений: 18
По умолчанию

Не получаеться с таким условием (key>=-177 and key<=177)
ByteMan вне форума Ответить с цитированием
Старый 19.12.2007, 20:53   #7
Alex.rus
Пользователь
 
Аватар для Alex.rus
 
Регистрация: 02.12.2007
Сообщений: 26
По умолчанию

Ну если ты хочеш вводить интервал то придется проверятьть значение Edit уже после ввода в него всех чисел и если они не подходят тогда выдавать сообщение об ошибке. Другого выхода я не вижу при работе с Edit.
Alex.rus вне форума Ответить с цитированием
Старый 19.12.2007, 21:01   #8
ByteMan
Пользователь
 
Регистрация: 07.06.2007
Сообщений: 18
По умолчанию

Спасибо puporev, ещё вопрос, а в какое событие это можно вписать, а то когда я пишу в OnkeyPress, я тогда вообще ничего не могу ввести
"Is not a valid integer value"?
ByteMan вне форума Ответить с цитированием
Старый 19.12.2007, 21:51   #9
bill
Форумчанин
 
Аватар для bill
 
Регистрация: 26.04.2007
Сообщений: 440
По умолчанию

В OnkeyPress просто надо перевести в тип integer или byte.
integer(key) и сравнивать далее. Я так понял тебе нало реагировать на нажатие клавиш. Тебе нужны OnkeyPress и OnKeyDown.
bill вне форума Ответить с цитированием
Старый 19.12.2007, 22:29   #10
Карась
Участник клуба
 
Аватар для Карась
 
Регистрация: 26.10.2007
Сообщений: 1,244
По умолчанию

ИМХО при нажатии на клавишу (OnkeyPress) мы впечатываем символ в Едит. При отпускании (OnKeyDown) начинаем проверять значение в Едите... Если превысили, то удаляем последний введённый символ..
Умом Россию не понять, пока не выпито ноль пять,
А если выпито ноль пять всё делом кажется не хитрым,
Попытка глубже понимать уже попахивает литром...
Карась вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #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