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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.10.2010, 23:07   #1
Saken_
 
Регистрация: 01.10.2010
Сообщений: 8
По умолчанию проверка вводимых значений

Написал программу, в которой обрабатываются числа (тип Integer), необходимо проверить вводимые значения на соответствие типу Integer, если вводимые значения- не принадлежат типу Integer,тто вывести сообщение о некорректных вводимых данных..как это сделать?
Saken_ вне форума Ответить с цитированием
Старый 17.10.2010, 23:21   #2
iama
 
Регистрация: 16.10.2010
Сообщений: 5
По умолчанию

Код:
function is_digit(s: string): boolean; 
var i: word;
begin 
Result := true;
for i := 1 to Length(s) do
  if not (s[i] in ['0'..'9']) then 
    isDigit := false; 
end;

...

if is_digit(edit1.text) then ...
iama вне форума Ответить с цитированием
Старый 17.10.2010, 23:27   #3
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Может, в try...except...end загнать?
т.е.:
Код:
var
  a: integer;
begin
  try
    a:=StrToInt(Edit1.Text);
  except
    ShowMessage('Не фига не Интегер!');
  end;
end;
Предупреждаю сразу, что при запуске проги из среды программирования будет вылетать "ошибка", если введено не Integer. Так и надо. Запустите сам скомпилированный экзешник и никаких ошибок не будет.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab

Последний раз редактировалось ex.cluz; 17.10.2010 в 23:30.
ex.cluz вне форума Ответить с цитированием
Старый 17.10.2010, 23:28   #4
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

Вот мой вариант:
Кидаешь на форму Button и Edit.
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
  Value: Integer;
begin

  try
    Value := StrToInt(Edit1.Text);
  except
    ShowMessage('Неверно введены данные! Вводите только натуральное число!')
  end;

end;
Можешь вынести в отдельную функцию.
Опаздал немного.
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 17.10.2010, 23:30   #5
Saken_
 
Регистрация: 01.10.2010
Сообщений: 8
По умолчанию

большое спасибо....

могу отблагодарить отзывом,если это тут возможно..

Последний раз редактировалось Stilet; 18.10.2010 в 10:24.
Saken_ вне форума Ответить с цитированием
Старый 17.10.2010, 23:32   #6
Roof
Форумчанин
 
Аватар для Roof
 
Регистрация: 01.02.2007
Сообщений: 785
По умолчанию

2 Saken_:
рекомендую к прочтению:
http://www.rsdn.ru/article/Delphi/Delphi_7_04.xml
Изо всей благодати
В руках крепко сжатых
Я донесу только капли
Roof вне форума Ответить с цитированием
Старый 17.10.2010, 23:33   #7
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Мне "спасибо" достаточно. Удачи!
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Старый 18.10.2010, 10:12   #8
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

val функция, она вам скажет о успешности или нет, произведенного конвертирования
BOBAH13 вне форума Ответить с цитированием
Старый 18.10.2010, 10:57   #9
ex.cluz
Участник клуба
 
Аватар для ex.cluz
 
Регистрация: 15.01.2010
Сообщений: 1,325
По умолчанию

Ого! Val - это функция древняя.
Я не знаю, может, ее в новых версиях делфи переписали?
На 7-ой версии, помнится, она с DecimalSeparator сотрудничать отказывалась, поэтому, по-моему, более безопасно использовать конверсионные подпрограммы, типа StrToFloat (из SysUtils), где информация региона распознаётся.
Грибы - они разные. Один тебя накормит, другой тебе кино покажет...
Редактор журнала "
[ПРОграммист]"
Yan's Home Digital Lab
ex.cluz вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ограничение вводимых значений для combobox Katunya Общие вопросы Delphi 17 29.01.2010 10:11
Проверка вводимых даных на фоорме ВБА ХочуЗнать Microsoft Office Excel 3 25.11.2009 14:18
Проверка типа вводимых данных ROD Общие вопросы C/C++ 3 19.09.2009 20:22
проверка вводимых значений nik1905 Microsoft Office Excel 7 26.08.2009 17:06
проверка вводимых значений не производится при удалении Air_kplp Microsoft Office Excel 7 29.05.2009 09:01