![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
строка или число?
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