Кент Рейсдорф. BORLAND C++BUILDER. Раздел 1
Кент Рейсдорф. BORLAND C++BUILDER. Страница 115
Снова запустите программу. Кнопка будет работать так, как ей положено. Итак, мы ухитрились использовать свойства, методы и события в одном примере.
Как вы заметили, функция ButtonClick() принимает указатель с именем Sender на объект TObject. Каждая функция-обработчик события будет иметь по крайней мере один аргумент Sender. В зависимости от события, функция может также принимать один или несколько дополнительных аргументов. Например, обработчик события OnMouseDown выглядит следующим образом:
В данном случае вы получите информацию о том, какая кнопка мыши была нажата, какая при этом была нажата клавиша на клавиатуре и координаты (х,у) курсора во время нажатия кнопки мыши. Функция-обработчик содержит всю информацию, которая необходима для реакции на событие.
Что же представляет собой Sender? Это указатель на компонент, который посылает сообщение обработчику. В нашем примере аргумент Sender является излишним, поскольку мы знаем, что сообщение исходит от кнопки Show/Hide. Вообще, Sender позволяет иметь один обработчик событий для нескольких компонентов. Для иллюстрации, давайте создадим новую кнопку и сделаем одну из кнопок кнопкой Show, а другую — кнопкой Hide.
1. Если редактор кода находится на переднем плане, нажмите F12, чтобы переключиться обратно в редактор форм.
2. Выделите кнопку Show/Hide, щелкнув на ней мышью. Измените значения свойств Name и Caption на Show.
3. Добавьте к форме новую кнопку справа от кнопки Show. Если хотите, выровняйте кнопки, чтобы форма выглядела лучше.
4. Измените значение свойства Name новой кнопки на Hide. Значение свойства Caption также изменится на Hide после того, как вы нажмете Enter.
5. Щелкните на кнопке Show, а затем на вкладке Events инспектора объектов. Обратите внимание, что для события OnClick теперь указано имя обработчика ShowClick. Замените его снова на ButtonClick. (Начальное имя обработчика устанавливается по умолчанию. Вы можете изменить его на любое другое.)