Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

строка или число?


FIL-23 ©   (2006-12-27 10:59:00) 

как определить введена ли в edit1 число или строка? .Зарание спасибо


Anatoly Podgoretsky   (2006-12-27 18:52:00) [1]

> FIL-23  (27.12.2006 10:59:00)  [0]

Не стоит это делать, лишняя трата ресурсов, это всегда строка, иногда пустая.


clickmaker   (2006-12-27 11:21:00) [2]

если прога для особо продвинутых юзеров, которые вводят 100%, 40град или 10кг, просто сделать усечение строки до одних цифирок
А то мало ли, ShowMessage('Некорректное числовое значение'); может и в ступор ввести...


Ega23   (2006-12-27 11:18:00) [3]

ИМХО:
OnKeyPress:
 if not (Key in ['0'..'9', #8]) then Key:=#0;

Потом, перед главным действием попробовать взять Val(Edit1.Text)


Ega23   (2006-12-27 11:16:00) [4]


> короче, если нужны только числа проще ограничить твой едит
> на ввод лишних символов


Через Paste можно будет что угодно вставить.


Darvin   (2006-12-27 11:16:00) [5]

try
 StrToFloat(Edit1.Text); или StrToInt(Edit1.Text);
except
 ShowMessage('Некорректное числовое значение');
end;


iXT   (2006-12-27 11:11:00) [6]


> как определить введена ли в edit1 число или строка? .Зарание
> спасибо

Сто пудово строка. Даже если одни циферки :)


> clickmaker ©   (27.12.06 11:01) [1]

И как? Если нет то не число (ну при условии что что-то есть), если да, то возможно число. :)


stone   (2006-12-27 11:11:00) [7]


> for j:=1 to length(s) do if s[j] in ['0'..'9'] then

а еще бываю деятичные разделители и разделители разрядов
а еще могут быть пробелы
а еще ...
короче, если нужны только числа проще ограничить твой едит на ввод лишних символов


stone   (2006-12-27 11:09:00) [8]


> как определить введена ли в edit1 число или строка?

Всегда строка, но иногда она может быть преобразована в число


Dmitrij_K   (2006-12-27 11:08:00) [9]


> FIL-23 ©   (27.12.06 11:07) [2]
>
> а поточнее ?
> как это в коде выглядит?

for j:=1 to length(s) do if s[j] in ['0'..'9'] then


FIL-23   (2006-12-27 11:07:00) [10]

а поточнее ?
как это в коде выглядит?


Dmitrij_K   (2006-12-27 11:07:00) [11]

[1]
+
TryStrToInt()
StrToIntDef()
Val()


clickmaker   (2006-12-27 11:01:00) [12]

проверить, нет ли в строке символов с кодами от 48 до 57


Наверх

Титульная страница Поиск, карта сайта Написать письмо