☰ Содержание · Информатика

Visible и Enabled

Уроки 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, чтобы объект затенился серым?
2
Label виден. Если переключение с помощью not выполнено 5 раз, каково состояние?
3
Окно растёт от 400 на +20 за щелчок; Button1 отключается, когда ширина достигает 500. После скольких щелчков?
4
Почему код всё ещё может обращаться к скрытому объекту?