Вниз
Скачать: CL | DM;

Помогите, как проверить поля, чтобы там были только цифры   Найти похожие ветки 

← →
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 вся ветка

Скачать: CL | DM;



Память: 0.48 MB
Время: 0.01 c
14-49284
Дмитрий К.К.
2002-12-27 14:39
2003.01.16
Адекватный перевод некоторых понятий...


3-48950
Programmer1
2002-12-23 10:14
2003.01.16
Сортировка по строковому Lookup полю


14-49299
race1
2002-12-28 10:31
2003.01.16
надпсь


1-49140
NewGuest
2002-12-29 18:29
2003.01.16
Глюки при считывании файла...


8-49170
Wav
2002-09-30 03:04
2003.01.16
Как в мою программу добавить файл wav и затем произвестиего?




   Наверх