|
Вопрос # 2 498/ вопрос открыт / |
|
Здравствуйте!
Можно ли сделать так, что бы, пока не впишешь 10 цифр в edit 1 был недоступен edit 2, и пока не впишешь 10 цифр в edit 2 был был недоступен баттон1? Спасибо!
 |
Вопрос задал: Хитманчан (статус: Посетитель)
Вопрос отправлен: 10 марта 2009, 08:52
Состояние вопроса: открыт, ответов: 1.
|
Ответ #1. Отвечает эксперт: min@y™
На событие Edit1.OnChange вешаешь такой код:
Edit2.Enabled:= Length(Edit1.Text) >= 10;
На событие Edit2.OnChange вешаешь вот такой:
Button1.Enabled:= Length(Edit2.Text) >= 10;
Потом создай единый обработчик для Edit1.OnKeyPress и Edit2.OnKeyPress и там:
if not (Key in ['0'..'9', #8]) // Чтобы нельзя было ввести ничего, кроме цифр.
then Key:= #0;
Это всё теория. Не советую использовать такое на практике, т.к. здесь есть свои нюансы (например, работа с буфером обмена). Не нужно требовать от пользователя такой тупой последовательности действий. Гораздо проще и лучше сделать проверку на правильность введённых данных по нажатию на кнопку Button1. Если данные введены неверно, то выдать сообщение с рекомендациями, а затем дать возможность откорректировать данные или отменить операцию.
 |
Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 10 марта 2009, 09:17
Оценка за ответ: 5
|
Мини-форум вопроса
Всего сообщений: 3; последнее сообщение — 11 марта 2009, 10:14; участников в обсуждении: 3.
|
Вадим К (статус: Академик), 10 марта 2009, 11:28 [#1]:
Я предпочитаю использовать не технологию "жесткого запрета" (хотя она иногда и нужна) и не "постуведомлений", а динамических уведомлений. Делается примитивно и просто. Рядом возле Edit ставим label, делаем его невидимым и шрифт красного цвета. а в OnEditChange пишем код вида
label1.caption :='Надо не меньше 10 символов';
label1.enable := length(edit1.text) <10;
Но проверку корректности в обработчике нажатия никто не отменял.
Такая технология более дружественная к пользователю - он видит что не так уже по мере набора и технология проста в написании.
Есть ещё более красивое проявление этой технологии. Если данные введены неверно, то возле edit появляется красный кружок с восклицательным знаком. А если навести на него мышку (кликнуть) то появляется подсказка, что не так и что надо сделать, что бы всем было хорошо. Говорят, что даже есть готовые компоненты в какой то библиотеке
Галочка "подтверждения прочтения" - вселенское зло.
|
|
Хитманчан (статус: Посетитель), 10 марта 2009, 13:39 [#2]:
min@y™, Вадим К, большое вам спасибо!
|
|
seryoga (статус: 1-ый класс), 11 марта 2009, 10:14 [#3]:
Конечно можно)))
|
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|