Рассмотрим основные события, которые может обрабатывать компилятор Kylix. Для начала перечислим эти события:
Рассмотрим каждое событие более подробно.
• при выборе пользователем путем нажатия клавиш управления курсором элемента в сетке (Grid), дереве (Trее), списке (List) или выпадающем списке (DropDown List);
• при нажатии пользователем клавиши < Пробел> или <Enter> в тот момент, когда компонент (например, кнопка) был в фокусе (Component. Focused = True);
• при нажатии пользователем клавиши <Enter> в случае, если активная форма имеет кнопку по умолчанию;
• при нажатии пользователем клавиши <Esc> в случае, если активная форма имеет кнопку прерывания;
• при нажатии пользователем комбинации клавиш быстрого доступа ("горячих" клавиш) для доступа к кнопке или пункту меню. Например, в свойстве Caption кнопки формы записано &Пуск, при этом надпись на кнопке имеет вид Пуск. В этом случае, если пользователь нажимает комбинацию клавиш <Alt>+<П>, происходит событие OnClick;
• при установке приложением свойства Сhecked переключателя RadioButton в true;
• при изменении приложением свойства Checked индикатора CheckBox;
• при вызове метода Click элемента меню приложения.
Примечаниe
К одному и тому же компоненту нельзя написать обработчики событий OnClick и OnDblClick, поскольку первый из них всегда перехватит первый из щелчков.
Во время перетаскивания компонента форма указателя мыши может изменяться. Для установки этого свойства служит свойство DragCursor компонента, на который будет переноситься другой компонент.
Приведем простой пример использования событий OnDragDrop и OnDragOver.
Для наглядного применения события OnDragDrop создадим приложение, которое позволит пользователю перетаскивать строки одного списка в другой. Итак, расположим на форме два списка ListBox; ListBox1 и ListBox2. Добавим строки в первый список путем редактирования его свойства Items. Назовем строки Cтрока 1 Cтрока 10 (Рисунок 8.17).
Для простоты будем перетаскивать строки из первого списка во второй. Поменяем значение свойства DragMode списка ListBox1 на dmAutomatic, что обеспечит автоматическое начало перетаскивания. Теперь для второго списка (ListBox2) напишем обработчик события OnDragOver (листинг 8.2).
