Уроки 47–48 · 2 урока · Н. И. Тайлаков (общий редактор), А. Б. Ахмедов, М. Д. Пардаева, А. А. Абдуганиев, У. М. Мирсанов. Информатика и информационные технологии, 10 класс, 1-е издание. «Extremum-Press», Ташкент, 2017
47
Ввод данных в приложение
Учебник: с. 102–105
ЦельИспользует объект Edit (поле ввода): задаёт Text, ReadOnly, MaxLength и PasswordChar, проверяет введённый текст и создаёт приложение, приветствующее пользователя.
Новые слова
Edit: поле ввода, в которое пользователь вводит одну строку текста · EditText: свойство, хранящее строку, введённую в Edit · TextReadOnly: если True, пользователь не может изменить текст · ReadOnlyPasswordChar: символ, показываемый вместо вводимых букв · PasswordChar
Объяснение
Приложение должно и получать данные от пользователя; простейшее средство для этого – Edit (вкладка Standard). У него нет Caption: введённый текст хранится в свойстве Text, поэтому его обычно используют вместе с Label. Если ReadOnly = True, пользователь не может изменить текст, но приложение может записывать в Text: поскольку у Edit есть рамка, он аккуратно показывает результат. MaxLength ограничивает количество символов, которое можно ввести (4 для года), а PasswordChar показывает символ вместо букв (PasswordChar := '*'). При сравнении текстов заглавные и строчные буквы различаются: 'abc' = 'ABC' ложно. Записывать пароль в код программы небезопасно: любой, кто увидит код, узнает его; не вводите в учебные приложения свой настоящий пароль.
Примеры
Игра «Секретное слово»: первый игрок вводит слово в Edit1 (PasswordChar = '*', поэтому буквы скрыты), второй вводит догадку в Edit2, а Edit3 показывает результат (ReadOnly = True): procedure TForm1.Button1Click(Sender: TObject); ⏎ begin ⏎ if Edit2.Text = Edit1.Text then ⏎ Edit3.Text := 'Topdingiz!' ⏎ else ⏎ Edit3.Text := 'Yana bir urinish'; ⏎ end; Если в Edit1 введено olma и в Edit2 введено olma: Topdingiz!; если в Edit2 введено Olma: Yana bir urinish (заглавная буква имеет значение).
Поле года рождения: MaxLength := 4. Если пользователь пытается ввести 20091, пятый символ не принимается, и текст остаётся 2009. Оператор Edit1.Text := ''; очищает поле: Text становится пустой строкой.
Работа в классе
«Секретное слово»: пара создаёт приложение-игру; другая пара проверяет его правильными, неверными догадками и догадками с заглавными буквами и записывает таблицу результатов.
Упражнения
1
Какое свойство хранит текст, введённый в Edit?
Text
2
Если MaxLength = 4 и введено 12345, что останется в поле?
1234
3
Если PasswordChar := '*', что показывается вместо букв пароля?
Звёздочки (*)
4
Почему для Edit, показывающего результат, ReadOnly устанавливают в True?
Чтобы пользователь не мог случайно изменить результат.