Войти

Показать полную графическую версию : [решено] *Теория* | Контроль ввода в компоненте Edit


Drongo
03-08-2006, 01:14
Скажите, как сделать так, чтобы при вводе цифр, нужно чтобы первая цифра, была меньше второй. Тоесть если введено 2(два), то вторая цифра была больше хотя бы на единицу. Или лучше всего можно было возратиться к редактированию. Конретно вот что... Есть два компонента Edit1 и Edit2, в первый вводится допустим два, во второй 1 или 2, и тут нужно или запретить ввод цифр меньше введённого в Edit1 или хотя бы НЕ просто вывести MessageBox с сообщением об ошибке (это есть, но программа продолжает присваивать неправильное число в Edit2, и результат получается неправильный), а НЕ давать ввести неправильное данное или как-то возратиться к редактированию поля Edit2. Подскажите пожалуйста решение? Знаю, что можно через KeyPress можно... Но у меня там проверяет на ввод, чтобы не ввводились буквы там всякие символы... Как это сделать? Ведь можно как-то или подскажите ссылку дайте или описание.

CyberDaemon
03-08-2006, 07:59
Ну и проверяй в обработчике, че там в Edit2 занесло. Если не то, очищаешь его и не производишь обработку результата.

Кстати, Знаю, что можно через KeyPress можно... Но у меня там проверяет на ввод, чтобы не ввводились буквы там всякие символы.. Ввод только цифр леххко реализуется компонентом MaskEdit.

Arrest
03-08-2006, 11:04
В обработчик Edit1->onExit и Edit2->onExit пишешь

if(Edit2->Text != "" && Edit1->Text != "" && StrToInt(Edit2->Text)<=StrToInt(Edit1->Text){
//если оба Edit'а не пусты то проверяем их на
//валидность
Edit2->Text=""; //Очищаем Edit2...
Edit2->SetFocus(); //...и устанавливаем фокус на него.
Application->MessageBox("Error", "Error", 16); //Показываем Messagebox.
}

Код C++.

Drongo
13-08-2006, 14:39
Arrest, Спасибо огромное работает ВСЁ!!! :) :)




© OSzone.net 2001-2012