Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
ВнизПомогите, как проверить поля, чтобы там были только цифры Найти похожие ветки
← →
Ba-ss (2003-01-07 21:38) [0]У меня есть поля, куда юзер вводит данные(кол-во инженеров, машин и т.д.). Они либо integer, либо float. Мне нужно сделать защиту от дурака, т.е. чтобы при нажатии кнопки "Проверка" он сообщил юзеру, что тот ввел текст(препод так сделал), и что кол-во инженеров не может быть отрицательным. Как это сделать?
← →
Song (2003-01-07 21:55) [1]try
StrToInt() // или StrToFloat()
except
{ пользователь ввёл текст }
end
А знак определять после того как преобразуешь в число
← →
uw (2003-01-07 22:00) [2]Посмотри, например, такой текст обработчика OnKeyPress для TEdit.
procedure TfmAdjDev.edFloatKeyPress(Sender: TObject; var Key: Char);
begin
if (Key = ".") OR (Key = ",") then
Key := DecimalSeparator;
if NOT (Key IN [BACKSPACE, DecimalSeparator, "0".."9"]) OR
((Key = DecimalSeparator) AND
(Pos(DecimalSeparator, (Sender as TEdit).Text) <> 0))
then
Key := #0;
end;
← →
Геннадий (2003-01-07 22:02) [3]А почему бы не использовать MaskEdit? В его свойство EditMask введи столько девяток, сколько цифр максимум можно вводить пользователю. Щёлкни по этому свойству и нажми F1 для дополнительной информации.
← →
Оливейра (2003-01-07 22:09) [4]А дробным? :-)
uses ComObj, ActiveX;
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var V: Olevariant;
i: integer;
TestString: String;
begin
TestString := Trim(InputBox("Ввидите страку чисел или не чисел", "", ""));
V:=CreateOleObject("VBScript.regexp");
V.Pattern := "[^\d]";
i:=V.Test(TestString);
if ((i <> 0) or (TestString = "")) then
ShowMessage("Не число")
else
SHowMessage("Это типа число");
end;
Если не заработает, помогать не буду.
Мой девиз - "А у меня все работает!"
← →
Ba-ss (2003-01-07 22:10) [5]Извини еще раз, но вот так не получается:
try
nm:=strtoint(var_r.text);
except
ShowMessage("Неправильные данные");
end;
Я что-то не так сделал?
← →
Геннадий (2003-01-07 22:19) [6]Ba-ss (07.01.03 22:10)
Извини еще раз, но вот так не получается:
try
nm:=strtoint(var_r.text);
except
ShowMessage("Неправильные данные");
end;
Я что-то не так сделал?
Если nm это Integer, а var_r - TEdit, то всё должно работать. А какая ошибка?
← →
Song (2003-01-07 22:20) [7]Что именно не получается? Ошибки? не работает? Думаешь, я телепат?
← →
Ba-ss (2003-01-07 22:21) [8]выдает все прежнее "a" is not valid integer value
← →
Song (2003-01-07 22:22) [9]Надо отключить исключения Дельфи в установках дебаггера. Options - debugger options. Последняя страничка - не останавливаться на исключениях Дельфи.
← →
Геннадий (2003-01-07 22:31) [10]Ba-ss (07.01.03 22:21)
выдает все прежнее "a" is not valid integer value
А от куда это "а" взялось? В твоём примере его нет... Дай полный код для ввода значения - посмотрим.
А ошибки (в try/except) он не будет тебе выдавать только если ты запустишь сам exe-шник, а не в Делфи.
← →
Ba-ss (2003-01-07 22:31) [11]Всем Огромное спасибо. Если бы не вы, я не знаю чтобы делал. Мне курсовик завтра сдавать. Еще раз спасибо.
← →
Song (2003-01-07 22:42) [12]2Геннадий © (07.01.03 22:31)
>>А ошибки (в try/except) он не будет тебе выдавать только если ты запустишь сам exe-шник, а не в Делфи.
Вовсе нет. Если отключить исключения, их не будет и в IDE тоже.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.009 c