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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.05.2013, 03:09   #1
*Fantom*
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 32
По умолчанию Delfi

У меня есть поле edit в котором должны быть только числа, как зделать проверку не используя коды клавиш?
Мое предположение, но оно не работает((
Код:
x:=strtofloat(edit1.Text);
y:=strtofloat(edit2.text);
c:=strtofloat(edit3.Text);
if ((x>(-32000))and(x<32000))or((y>(-32000))and(y<32000))or((c>(-32000))and(c<32000)) then
z:=(x/100)*y*c;
if CheckBox1.Checked = True then   z:=z*2;
Label1.Caption := FloatToStr(z);
else   showmessage('ERROR');
end;

Последний раз редактировалось *Fantom*; 28.05.2013 в 03:26.
*Fantom* вне форума Ответить с цитированием
Старый 28.05.2013, 03:28   #2
kventin_zhuk
БНТУ ФИТР
Форумчанин
 
Аватар для kventin_zhuk
 
Регистрация: 20.05.2012
Сообщений: 315
По умолчанию

Вы ввод хотите ограничить, чтобы не вводились символы отличные от цифр? тут без кодов никак

Создаете обработчик события у Edit OnKeyPress - и внутри него проверяете:

Код:
if not (Key in ['1'..'9', #8]) then 
      Key := #27;
То, что с решеточкой - коды клавиш. 8 - Backspace и 27 - Esc
С++(console/builder/WinAPI/Linux), C#, Pascal, Delphi, Asm, Prolog.
< ----- Контакты
kventin_zhuk@live.com
kventin_zhuk вне форума Ответить с цитированием
Старый 28.05.2013, 03:32   #3
*Fantom*
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 32
По умолчанию

Спасибо но на преподаватель запретил использовать коды клавиш(
Сказала хоть убейтесь но без них)
*Fantom* вне форума Ответить с цитированием
Старый 28.05.2013, 03:35   #4
type_Oleg
Старожил
 
Аватар для type_Oleg
 
Регистрация: 02.03.2008
Сообщений: 2,499
По умолчанию

Тут синтаксическая ошибка: " ; " перед " else ". Забыли, наверное " begin ... end ". У вас же по последнему then 2 оператора выполняються должны?

И зачем " if CheckBox1.Checked = True ", если можно просто "if CheckBox1.Checked".

А вообще, я суть задачи не понял. Зачем эти 32000 ?
type_Oleg вне форума Ответить с цитированием
Старый 28.05.2013, 06:47   #5
Armorer
Подтвердите свой е-майл
 
Регистрация: 07.04.2007
Сообщений: 120
По умолчанию

Цитата:
только числа
В D2010 у Edit есть свойство NumbersOnly.
Armorer вне форума Ответить с цитированием
Старый 28.05.2013, 08:06   #6
Mad_Cat
Made In USSR!
Старожил
 
Аватар для Mad_Cat
 
Регистрация: 01.09.2010
Сообщений: 3,657
По умолчанию

http://delphiworld.narod.ru/base/edits_number_mask.html
"...В жизни я встречал друзей и врагов.В жизни много всего перевидал.Солнце тело мое жгло, ветер волосы трепал,но я смысла жизни так и не узнал..."
(c) Юрий Клинских aka "Хой"
Mad_Cat вне форума Ответить с цитированием
Старый 28.05.2013, 09:35   #7
Arigato
Высокая репутация
СуперМодератор
 
Аватар для Arigato
 
Регистрация: 27.07.2008
Сообщений: 15,552
По умолчанию

Все эти фильтры по клавишам не учитывают возможность вставки текста из буфера обмена.
Arigato вне форума Ответить с цитированием
Старый 28.05.2013, 13:17   #8
*Fantom*
Пользователь
 
Регистрация: 28.05.2013
Сообщений: 32
По умолчанию

Нужно попробывать сделать с помощью свойства NumbersOnly. Всем спасибо за помощь
*Fantom* вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Циклы Delfi LLIALLIJIbIK Общие вопросы Delphi 3 11.04.2013 21:06
delfi to c# evander2711 Помощь студентам 0 22.12.2012 17:51
Задачи по C++ и Delfi. Lbstar Фриланс 4 04.02.2011 14:54
Delfi RS219 Свободное общение 1 18.05.2010 12:32