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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 09.02.2011, 06:21   #1
Ewgen81
 
Регистрация: 02.02.2011
Сообщений: 8
По умолчанию Вопрос

Нубский вопрос: как проверить поле (Edit1), что в нем действительно число (Real) а не текст. NumbersOnly не предлагать - это целые числа, мне нужны любые.
Ewgen81 вне форума
Старый 09.02.2011, 06:43   #2
Greek9000
Форумчанин
 
Регистрация: 01.09.2009
Сообщений: 151
По умолчанию

Есть ф-ция
Код:
TryStrToFloat(str:String; val:Extended);
Возвращает true, если str - число с плавающей запятой.
Только не забывайте, что надо заботиться о том, какие настройки установлены в системе, а то долго будете думать, почему число 9.5 не преобразуется во float-тип, пока раскладку не поменяете
Я обычно явно указываю что должна быть точка, и перед конвертацией типов заменяю "," на "."
Greek9000 вне форума
Старый 09.02.2011, 11:58   #3
Ewgen81
 
Регистрация: 02.02.2011
Сообщений: 8
По умолчанию

у меня получилось вот как
Код:
    if TryStrToFloat(Edit1.Text) then a:=StrToFloat(FChislo1.Chislo1)
    else
    ShowMessage('Не число!');
компилятор ругается: [DCC Error] Unit2.pas(101): E2250 There is no overloaded version of 'TryStrToFloat' that can be called with these arguments
причем здесь перегруженный метод?
Ewgen81 вне форума
Старый 09.02.2011, 12:12   #4
asmodey1
Подтвердите свой е-майл
 
Регистрация: 19.12.2010
Сообщений: 808
По умолчанию

А в хэлпе посмотреть формат функции TryStrToFloat ?
А посмотреть внимательно пост 2 ?
asmodey1 вне форума
Старый 09.02.2011, 12:15   #5
GunSmoker
Старожил
 
Регистрация: 13.08.2009
Сообщений: 2,581
По умолчанию

Ewgen81, ты отличаешь функцию с одним аргументом от функции с двумя аргументами?
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
GunSmoker вне форума
Старый 09.02.2011, 12:36   #6
Ewgen81
 
Регистрация: 02.02.2011
Сообщений: 8
По умолчанию

только сильно не ругайте, я только учусь
а второй аргумент это что? (val:Extended) переменная для записи результата обработки?
Ewgen81 вне форума
Старый 09.02.2011, 12:43   #7
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

на вскидку по твоему вопросу:
Код:
var
  Str: string;
  I: Extended;
begin
  Str:= Edit1.Text;
  if TryStrToFloat(Str, I) then
  begin
    // тут действия если введено число
    // I - это число которое ввел пользователь
  end
  else
     raise Exception.Create('введенные данные не являются числом');
end;
принимаю благодарности в письменном виде( весы слева)...

Последний раз редактировалось MaxNik2009; 09.02.2011 в 12:46.
MaxNik2009 вне форума
Старый 09.02.2011, 13:02   #8
Ewgen81
 
Регистрация: 02.02.2011
Сообщений: 8
По умолчанию

Все понял теперь, только вот на
Цитата:
raise Exception.Create('введенные данные не являются числом');
ругается опять, попробовал showmessage тоже самое
First chance exception at $7C812AFB. Exception class EConvertError with message ''лл' is not a valid floating point value'. Process Project2.exe (1576)
Ewgen81 вне форума
Старый 09.02.2011, 13:05   #9
MaxNik2009
Форумчанин
 
Аватар для MaxNik2009
 
Регистрация: 17.09.2009
Сообщений: 294
По умолчанию

Цитата:
''лл'
а это что за сообщение ты пытаешься вывести?
принимаю благодарности в письменном виде( весы слева)...
MaxNik2009 вне форума
Старый 09.02.2011, 13:06   #10
Ewgen81
 
Регистрация: 02.02.2011
Сообщений: 8
По умолчанию

для проверки ввел в поле в место цифры
если вводишь цифры, все нормально работает и считает
Ewgen81 вне форума
Закрытая тема


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вопрос по mySQL + Вопрос по RichEdit HTL Общие вопросы Delphi 4 01.01.2010 20:22
Вопрос наверное про функции, а так точно даже не знаю про что. (Вопрос начинющего #6) Albert2008 Общие вопросы Delphi 4 21.08.2008 15:33
вопрос по сокетам и общение как в ICQ.Сложный вопрос... Руслантус Общие вопросы C/C++ 2 12.08.2008 21:10