3.3.3. Динамическое
изменение свойств компонента
Поскольку кнопка Button1 в нашей
программе способна “звучать”, полезно изменить ее надпись: вместо умалчиваемой
надписи Button1, которую автоматически формирует Delphi по имени компонента,
назовем кнопку, например, “Звук”. Проще всего это сделать с помощью окна формы
и Инспектора объектов, т. е. на этапе конструирования формы (для этого нужно
просто изменить свойство caption компонента Button1 в окне Инспектора объектов),
но для более полного знакомства с Delphi мы рассмотрим другой способ - динамического[
К
сожалению, эта процедура работает не всегда: если ваш ПК не оснащен звуковой
картой, динамик будет молчать. В этом случае вместо MessageBeep (MB_OK) напишите
просто Веер. Изменения на этапе конструирования называются статическими, а в
ходе прогона программы - динамическими.
] изменения надписи на этапе прогона
программы. Для этого создадим обработчик события OnCreate (По созданию) для
формы и изменим в нем это свойство.
Событие OnCreate возникает после
создания windows-окна, но до появления этого окна на экране. Чтобы создать обработчик
этого события, раскройте список компонентов в верхней части окна Инспектора
объектов, выберите компонент Formi и дважды щелкните по свойству OnCreate на
странице Events этого
компонента
(щелкать нужно по правой части строки oncreate). В ответ Delphi вновь активизирует
окно кода и покажет вам заготовку для процедуры TForm1. FormCreate. Отредактируйте
ее следующим образом:
procedure
TForm1.FormCreate(Sender:
TObject);
begin
Button1.Caption:= 'Звук';
end;
Единственная вставленная нами строка
представляет собой так называемый
оператор присваивания языка Object
Pascal. В левой части оператора указывается свойство Buttoni. caption, а в правой
части - значение ' звук ', которое мы хотим придать этому свойству. Связывает
обе части комбинация символов “: =”, которая читается как “присвоить значение”.
Символы “:=” всегда пишутся слитно, без разделяющих пробелов, хотя перед двоеточием
и после знака равенства можно для лучшей читаемости программы вставлять пробелы,
что мы и сделали. Как и любое другое предложение языка, оператор присваивания
завершается точкой с запятой.
Составное имя Button1.Caption необходимо
для точного указания компилятору, о каком свойстве идет речь: в нашей программе
используются три компонента (включая саму форму), каждый из которых имеет свойство
Caption; уточняющий префикс Button1 заставит изменить это свойство у кнопки,
а не у метки или формы. Присваиваемое свойству значение является текстовой строкой.
По правилам Object Pascal текстовая строка должна заключаться в обрамляющие
апострофы. Внутри апострофов можно написать любое количество произвольных символов
- именно они (без обрамляющих апострофов) будут определять новую надпись на
кнопке.
После очередного прогона программы
вы увидите измененную надпись на кнопке, а мы сделаем важный вывод: любое свойство
любого компонента можно изменять
динамически,
т. е. в ходе исполнения
программы.