| 
| 
 | Вопрос # 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]:Конечно можно))) |  Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |