Delphi. Обработка событий компонент, созданных в Run-Time |
||||
---|---|---|---|---|
В начале мне хотелось бы просто рассказать об общем принципе, на простом примере. Мы создадим в Run-Time кнопку и будем обрабатывать ее событие OnClick. Кнопка у нас будет создаваться по нажатию на кнопку Button1.
Здесь нет ничего сложного. Мы просто создаем объект типа TButton и задаем его свойства. Но самое главное, что мы присвоили обработчику процедуры OnClick для нашей кнопки процедуру OnClickButton, которая и будет выполнять все необходимые действия. Нам осталось только описать эту процедуру. Помещаем объявление процедуры в поле Private:
Ну а теперь остается самое простое - написать саму процедуру OnClickButton. Самое простое что может прийти в голову - это вывести сообщение о нажатии на кнопку. Теперь в теле программы мы пишем примерно следующее:
Вот и все!!! По-моему невероятно просто. Но в первой статье мы рассматривали еще и создание массива компонент в Run-Time. Сейчас мы разберем обработку событий для этих компонент. Рассмотрим это на примере поля ввода класса TEdit. Т.е. по нажатию на кнопку у нас будет создаваться массив из 10 компонент TEdit. Для разнообразия, объявим наш массив, как глобальную переменную:
Изменим описание процедуры OnClick для кнопки Button1, что создавались наши компоненты TEdit:
Объявим процедуру OnEditChange в разделе Private (собственно это можно сделать и в разделе Public):
И, наконец, напишем саму процедуру OnEditChange:
В результате работы этой процедуры заголовок формы будет содержать текст того компонента TEdit, в котором производится ввод. С помощью Sender мы как раз и указываем какой компонент инициировал это событие. Видите, все опять оказалось просто :)) Ну вот, надеюсь что разрешил (хотя бы немного :)) проблему с обработкой событий компонент, созданных в Run-Time. |