Уроки 45–46 · 2 урока · Н. И. Тайлаков (общий редактор), А. Б. Ахмедов, М. Д. Пардаева, А. А. Абдуганиев, У. М. Мирсанов. Информатика и информационные технологии, 10 класс, 1-е издание. «Extremum-Press», Ташкент, 2017
45
Состояния Enabled и Visible управляющих объектов
Учебник: с. 98–101
ЦельРазличает свойства Visible и Enabled, использует логические значения True/False и операцию not и управляет приложением, скрывая или отключая кнопки.
Новые слова
Visible: показывается ли объект в окне · VisibleEnabled: реагирует ли объект на действия пользователя · EnabledTrue / False: два значения логического типа · True / Falsenot: операция, меняющая логическое значение на противоположное · not
Объяснение
У большинства элементов управления есть свойства Visible и Enabled; оба имеют логический тип и принимают только значение True или False. Если Visible = False, объект не показывается в окне, но продолжает существовать, и код может на него ссылаться. Если Enabled = False, объект виден, но затенён серым, и пользователь не может с ним работать. С помощью этих двух свойств приложение направляет пользователя: оно отключает кнопку, которая сейчас не нужна, или скрывает её, чтобы сэкономить место. Операция not меняет логическое значение на противоположное, поэтому оператор Label1.Visible := not Label1.Visible; при каждом нажатии то показывает, то скрывает текст. Чтобы объект отвечал на щелчок, он должен быть одновременно видимым и доступным.
Примеры
Ширина окна равна 400, а Button2.Visible = False. При нажатии Button1: ⏎ procedure TForm1.Button1Click(Sender: TObject); ⏎ begin ⏎ Form1.Width := Form1.Width + 20; ⏎ if Form1.Width >= 500 then ⏎ begin ⏎ Button1.Enabled := False; ⏎ Button2.Visible := True; ⏎ end; ⏎ end; При пятом щелчке ширина становится 400+5·20 = 500: Button1 затеняется серым, а Button2 появляется.
Label1.Visible := not Label1.Visible; В начале Label виден (True). Первый щелчок скрывает его, второй показывает; после нечётного числа щелчков он скрыт, после чётного – виден. После 7 щелчков Label скрыт.
Работа в классе
«Скрытая кнопка»: в приложении из двух кнопок первая кнопка скрывает или показывает вторую; другая пара предсказывает состояние после 9 щелчков.
Упражнения
1
Какое свойство становится False, чтобы объект затенился серым?
Enabled
2
Label виден. Если переключение с помощью not выполнено 5 раз, каково состояние?
Скрыт (False)
3
Окно растёт от 400 на +20 за щелчок; Button1 отключается, когда ширина достигает 500. После скольких щелчков?
5
4
Почему код всё ещё может обращаться к скрытому объекту?
Visible = False не удаляет объект, а лишь перестаёт его показывать; объект продолжает существовать.