Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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.01 c
14-49306
Иксик
2002-12-28 10:18
2003.01.16
Поисковая система


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


14-49214
Marser
2002-12-27 23:42
2003.01.16
В жизни любого человека


1-49080
opoloXAI
2003-01-04 19:42
2003.01.16
TQuickReport+TStringGrid=количество страниц?


3-48910
gunner
2002-12-20 16:04
2003.01.16
Утечка памяти в ADOStoredProc





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский