Главная страница / Готовые решения / Mayral framework / Документация / Уроки Mayral framework
3. События компонентов и их обработчикиВо втором уроке мы назначали кнопке TestButton обработчик на событие OnClick.
$TestButton->OnClick = "Parent->TestButton_OnClick";
Теперь пришло время рассмотреть этот момент подробнее. Большинство визуальных компонентов имеют набор стандартных событий:
OnExit – потеря фокуса OnFocus – получение фокуса OnChange – изменение значения компонента OnClick – «клик» на компонент OnMouseOver – наведение OnMouseOut – «уход» курсора с компонента OnKeyPress – нажатие кнопки клавиатуры
Следует понимать, что далеко не все события работают у всех компонентов и, что ряд компонентов имеют дополнительные события. Нам же важнее рассмотреть общий принцип задания обработчиков и их написания.
Рассмотрим строку из предыдущего примера:
$TestButton->OnClick = "Parent->TestButton_OnClick";
Все очень просто, если перевести это на обычный язык то получится ровно следующее – кнопке TestButton на событие OnClick назначается обработчик TestButton_OnClick, который располагается в коде родителя TestButton, т.е нашей головной формы. Теперь нам осталось написать сам обработчик. В файле UnitOProjectFormMain.php пропишем:
public function TestButton_OnClick($_sender, $_event, $_event_args = null) { $this->HelloLabel->Text = "TestButton clicked"; $this->MyEdit->Style->Width = $this->MyEdit->Style->Width + 50; $this->MyEdit->Style->Top = $this->MyEdit->Style->Top + 20; $this->MyEdit->Value = $this->MyEdit->Style->Width; }
Обратите внимание, что этот обработчик уже существует, так что вам просто нужно дополнить его код последними тремя строками.
Рассмотрим передаваемые обработчику переменные:
$_sender - компонент вызвавший обработчик (иногда его полезно знать, особенно в тех случаях, когда один обработчик используется для нескольких компонентов) $_event - название события $_event_args - параметры события (некоторые события могут передавать параметры, например, у таблицы есть событие OnCellClick, это событие в параметрах передаст колонку и строку ячейки, которая инициировала вызов обработчика)
Теперь, после запуска приложения и нажатия на кнопку TestButton, текстовое поле MyEdit будет менять свою длину, смещаться вниз и отображать свой текущий размер. В обработчиках событий можно прописывать любой код и осуществлять любые операции с компонентами. Последнее, что стоит отметить – изменение не всех свойств ведет к перерисовке компонента у клиента.
Т.е если бы в нашем примере мы не изменяли свойство Value у MyEdit, нам было бы необходимо добавить следующую строку AddToChangedComponents($this->MyEdit);
Посмотреть результат можно по ссылке: http://mayral.ru/lessons/3/
| А так же:1. С самого начала2. Первые пробы с компонентами 3. События компонентов и их обработчики |
© ОРБСофт 2003-2011
Создание и разработка сайтов и программ на заказ
Москва, Щербаковская улица, д.53 Телефон: +7 (495) 366-56-59
Электронная почта: info@orbsoft.ru
