Delphi для начинающих – Урок 2 — События

A

AngelOfLove

В прошлом уроке я показал в общих чертах про среду разработки Delphi и ее компоненты. Теперь мы разберем устройство событий в Delphi. События являются одним из ключевых понятий в программировании на Delphi. Все объекты из библиотеки визуальных компонентов (VCL) Delphi, как и объекты реального мира, имеют свой набор свойств и свое поведение — набор откликов на события, происходящие с ними. Список событий для данного объекта, на которые он реагирует, можно посмотреть, например, в инспекторе объектов во вкладке Events. Поведение объекта на то или иное событие называется обработчиком события. Создание приложений в среде разработки Delphi подразумевает создание компонентов, настройки их свойств и программирование обработчиков событий. Созданию компонентов и настройке их свойств мы уже научились из предыдущего урока. Главной задачей этого урока будет написание обработчиков событий.

В этом уроке все скриншоты будут представлены с Delphi 2010. Более старые и новые версии Delphi имеют аналогичный интерфейс, поэтому особых затруднений возникнуть не должно.




Все дальнейшие уроки рассчитаны на программистов, хорошо освоивших основы языка программирования Pascal.
Для того, чтобы задать обработчик событий, нужно выбрать объект на форме, например кнопку Button1, и в инспекторе объектов на вкладке Events дважды кликнуть левой кнопкой мыши, по текстовому полю, рядом с событием, которое вы хотите обработать. Создадим событие OnClick для компонента Button1. Откроется окно редактора программного кода:


Перед нами обработчик события OnClick компонента Button1. Обработчики в Delphi выглядят как процедуры в Pascal, поэтому нетрудно догадаться, что код обработчика нужно писать между ключевыми словами begin и end. Приведем простейший пример обработчика, добавив в него строку showmessage('Это сообщение должно быть выведено при нажатии на кнопку'); Должно получиться:





Процедура showmessage в Delphi выводит текстовое сообщение в виде окна. Теперь прокомпилируем, т.е создадим исполняемый файл нашей программы.



Компиляция — это процесс создания исполняемого файла, например с расширением *.exe, основываясь на указанном компилятору программном коде.


Прокомпилировать программу можно, нажав на кнопку , которая расположена на верхней панели инструментов. Если в вашем программном коде были найдены ошибки (синтаксические, фактические или просто опечатки), то во время компилирования в новых версиях Delphi откроется окно, в котором будет указано наличие ошибок в коде и их количество. Например, если вместо showmessage из нашего предыдущего примера, мы напишем showmmessage, то программа укажет нам на ошибку:





Новые версии Delphi способны обнаруживать типичные и частые ошибки еще до компиляции.

Если же ошибок найдено не было, то компиляция будет успешно завершена, в папке с сохраненным проектом и всеми другими файлами (*.pas, *.dpr и т.д) будет создан исполняемый *.exe файл, который при успешной компиляции автоматически запустится. В результате откроется окно созданного нами приложения:





Нажмем на кнопку Button1 и увидим наше сообщение:





При нажатии на кнопку OK окно с сообщением закрывается.

Далее я приведу другие примеры, которые обязательно рекомендую попробовать самим.

Пример 1. Закрытие окна приложения.

Кнопке Button1 задайте обработчик события OnClick close;

Пример 2. Изменение свойств компонентов.

Создайте компоненты Button1, Memo1, CheckBox1, Label1. Кнопке Button1 задайте обработчик события OnClick:

1 Button1.caption:='Эта кнопка была нажата';
2
3 Memo1.text:='Вы нажали на кнопку Button1';
4
5 Checkbox1.checked:=true;
6
7 Label1.caption:='Это простой пример обработчика события';
Пример 3. Добавление строки в ListBox1

Создайте компоненты ListBox1 и Button1. Кнопке Button1 задайте обработчик события OnClick:

Listbox1.items.add('Вы опять нажали на кнопку Button1');

Пример 4. Вывод содержимого текстового поля при условии

Создайте компоненты Button1, CheckBox1, Edit1. Кнопке Button1 задайте обработчик события OnClick:

if checkbox1.checked then showmessage(edit1.text);

В данном примере при нажатии на кнопку Button1, будет выведено содержимое текстового поля Edit1, только при том условии, что установлена галочка в поле CheckBox1. Условные операции мы рассмотрим в следующих уроках.

Пример 5. Вывод информации о местоположении окна приложения на экране.

Создайте компонент Label1 и Button1. Кнопке Button1 задайте обработчик события OnClick:

label1.caption:='x='+inttostr(form1.left)+' y='+inttostr(form1.top);

В результате программа выведет местоположение окна приложения по оси X и Y соответственно.
 
Похожие темы
A Delphi для начинающих. Урок 11. Процедуры и функции Программирование 0
A Delphi для начинающих. Урок 10. Циклы. Работа с массивами Программирование 0
A Delphi для начинающих – Урок 9 – Массивы Программирование 0
A Delphi для начинающих – Урок 8 – Условия. Оператор Case Программирование 0
A Delphi для начинающих – Урок 7 – Условия. Оператор IF Программирование 0
A Delphi для начинающих – Урок 6 – Пишем свой калькулятор Программирование 0
A Delphi для начинающих – Урок 5 – Работаем с компонентами Программирование 0
A Delphi для начинающих – Урок 4 – Работа с переменными Программирование 0
A Delphi для начинающих – Урок 3 – Создание переменных Программирование 0
A Delphi для начинающих — Урок 1 — Среда разработки Delphi Программирование 0
Admin Интересно Embarcadero представила ИИ-ассистента Kai для Delphi и C++Builder. Новости в сети 0
C Реверс-инжирниринг бота на Delphi, есть проблемы Свободное общение 0
M [Delphi] Работа VKAPI, на примере бота Программирование 3
T Пишем WinLocker на Delphi Программирование 0
D Нужна помощь по Delphi! ЗАПЛАЧУ! Программирование 1
A Потоки в Delphi. TThread Программирование 0
A Delphi. Урок 17. Типы Программирование 0
A Delphi. Урок 16. Исключительные ситуации Программирование 0
A Delphi. Урок 15. Математические операции Программирование 0
A Delphi. Урок 14. Работа со списками строк TStringList или «сложные» типы Программирование 0
A Delphi. Урок 13. Работа со строками Программирование 0
A Delphi. Урок 12. Преобразование числа в строку и строки в число Программирование 0
A Простые шутку в DELPHI Программирование 5
A Мои старые исходники на Delphi Программирование 1
A Несколько шпор по Delphi =) Программирование 3
L Загружаем компьютер другу. Delphi,rad studio Программирование 0
I Country IP Ranges Generator v1.0 [Source][Delphi] Программирование 3
B Помощь [Delphi] Программирование 0
B VK Post Grabber [Source][Delphi] Программирование 0
Admin [delphi] downloader winapi Программирование 0
Admin UFOLABSNEWS Ботнет Dysphoria использует блокчейн для управления после действий правоохранителей. Новости в сети 0
Admin UFOLABSNEWS США вернули технологию Манхэттенского проекта для защиты квантовых компьютеров. Новости в сети 0
Admin UFOLABSNEWS Злоумышленники используют Telegram для атак на правительства Ближнего Востока. Новости в сети 0
devqp Статья Комплексный набор инструментов OSINT для исследования .onion сайтов OSINT 0
Admin UFOLABSNEWS Злоумышленники используют браузеры жертв для сборки вредоносного ПО. Новости в сети 0
devqp Статья Автоматизация sqlmap через ChatGPT для пентеста SQL-инъекций Уязвимости и взлом 0
devqp Статья Анализ актуальных SMTP-портов для автоматизации брутфорса и работы с прокси Уязвимости и взлом 0
Admin Интересно Новый троян Dolphin X использует искусственный интеллект для ранжирования целей. Новости в сети 0
Admin Интересно Российские хакеры используют уязвимость Zimbra для кражи электронной почты. Новости в сети 0
Admin Интересно Хакеры используют плагины Notepad++ для скрытой установки вредоносного ПО. Новости в сети 0
Admin Интересно Минцифры рекомендует сохранить файл с Госуслуг для защиты от блокировки сайтов в Chrome и Edge. Новости в сети 0
Admin Интересно Anthropic заплатит 1,5 млрд долларов авторам за использование их книг для обучения ИИ. Новости в сети 0
Admin Интересно Полиция ликвидировала платформу для фишинга Kratos и арестовала разработчика. Новости в сети 0
Admin Интересно Яркий свитер может сделать вас невидимым для систем распознавания лиц. Новости в сети 0
Admin Интересно Русскоязычный хакер использовал Google Gemini для управления ботнетом. Новости в сети 0
Admin Интересно Amazon экстренно переписывает код для своих беспилотных автомобилей после инцидента с дымом и пожаром. Новости в сети 0
Admin Интересно Хакеры используют ViPNet для атак на российские госучреждения. Новости в сети 0
Admin Интересно Выпущено обновление 7-Zip для устранения уязвимости удалённого выполнения кода. Новости в сети 0
devqp Статья Практическое применение SBERT для поиска семантически близких предложений Полезные статьи 0
Admin Интересно Исследователь опубликовал эксплойт для уязвимости в Windows после обновления Microsoft. Новости в сети 0

Название темы