разработка сайтов, разработка программного обеспечения (495) 150-80-59

Главная страница / Программное обеспечение / 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 будет менять свою длину, смещаться вниз и отображать свой текущий размер.

В обработчиках событий можно прописывать любой код и осуществлять любые операции с компонентами.

Последнее, что стоит отметить – изменение не всех свойств ведет к перерисовке компонента у клиента.

 

Для того чтобы принудительно указать на необходимость этого используется функция AddToChangedComponents.

 

Т.е если бы в нашем примере мы не изменяли свойство Value у MyEdit, нам было бы необходимо добавить следующую строку AddToChangedComponents($this->MyEdit);

 

Посмотреть результат можно по ссылке: http://mayral.ru/lessons/3/

 

А так же:

1. С самого начала
2. Первые пробы с компонентами
3. События компонентов и их обработчики


Готовые решения Наши услуги Компания


При использовании или копировании материалов ссылка обязательна
+7 495 150-80-59
Россия, Москва, Щербаковская улица, д.53
E-mail:

Как к нам добраться
Обратная связь