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

A

AngelOfLove

Original poster
В прошлом уроке я показал в общих чертах про среду разработки 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. Процедуры и функции С/C++ 0
A Delphi для начинающих. Урок 10. Циклы. Работа с массивами С/C++ 0
A Delphi для начинающих – Урок 9 – Массивы С/C++ 0
A Delphi для начинающих – Урок 8 – Условия. Оператор Case С/C++ 0
A Delphi для начинающих – Урок 7 – Условия. Оператор IF С/C++ 0
A Delphi для начинающих – Урок 6 – Пишем свой калькулятор С/C++ 0
A Delphi для начинающих – Урок 5 – Работаем с компонентами С/C++ 0
A Delphi для начинающих – Урок 4 – Работа с переменными С/C++ 0
A Delphi для начинающих – Урок 3 – Создание переменных С/C++ 0
A Delphi для начинающих — Урок 1 — Среда разработки Delphi С/C++ 0
C Реверс-инжирниринг бота на Delphi, есть проблемы Вопросы и интересы 0
M [Delphi] Работа VKAPI, на примере бота С/C++ 3
T Пишем WinLocker на Delphi С/C++ 0
D Нужна помощь по Delphi! ЗАПЛАЧУ! Другие ЯП 1
VAVAN Продам исход стиллера (ЯП Delphi) Продажа софта 1
A Потоки в Delphi. TThread С/C++ 0
A Delphi. Урок 17. Типы С/C++ 0
A Delphi. Урок 16. Исключительные ситуации С/C++ 0
A Delphi. Урок 15. Математические операции С/C++ 0
A Delphi. Урок 14. Работа со списками строк TStringList или «сложные» типы С/C++ 0
A Delphi. Урок 13. Работа со строками С/C++ 0
A Delphi. Урок 12. Преобразование числа в строку и строки в число С/C++ 0
A Простые шутку в DELPHI С/C++ 5
A Мои старые исходники на Delphi С/C++ 1
A Несколько шпор по Delphi =) С/C++ 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
Emilio_Gaviriya Статья AlienVault: Всё, что вам нужно знать о платформе для обнаружения угроз. Уязвимости и взлом 0
Emilio_Gaviriya OSINT: Подборка инструментов для автоматизации разведки. Статьи 0
Support81 VPN – ловушка для Android: как приложения превращают смартфоны в зомби Новости в сети 0
Support81 Токены Discord нарасхват: взлом Top.gg обернулся кошмаром для разработчиков Новости в сети 0
Emilio_Gaviriya Статья Платформы для проверки и улучшения навыков белого хакинга. Уязвимости и взлом 0
Emilio_Gaviriya Статья Инструмент для сбора whois-истории. Уязвимости и взлом 0
Support81 82 участника, 1,3 миллиарда и...отсрочка: что происходит с российской платформой для обмена кодом Новости в сети 0
Support81 DarkGPT: незаменимый OSINT-инструмент для специалистов в сфере кибербезопасности Новости в сети 0
Support81 StopCrypt: вымогатель для простых смертных обзавёлся мантией-невидимкой Новости в сети 0
M Работа для соискателей из РФ и РБ. Предоставляю работу. Ищу специалиста. 1
G Нужны толковые ребята для работы Ищу работу. Предлагаю свои услуги. 0
Emilio_Gaviriya Статья Инструменты для исследования вредоносного ПО. Вирусология 0
Support81 WogRAT злоупотребляет сервисом для заметок aNotepad Новости в сети 0
Emilio_Gaviriya Статья Полезные дополнения для пентеста. Уязвимости и взлом 0
Support81 Наказание для Минобороны: как Великобритания «помогла» афганским беженцам скрыться от талибов Новости в сети 0
Black_ppss ⭐ Поиск людей для работы с команде! Вещевой карж по EU! Предоставляю работу. Ищу специалиста. 1
D Подработка для всех! Предоставляю работу. Ищу специалиста. 0
Support81 Троян GoldPickaxe крадет лица владельцев iPhone для доступа к банковским счетам Новости в сети 0
Support81 92% атак по email: электронная почта остается главной лазейкой для фишеров Новости в сети 0
Support81 ЦБ объявил войну кредитным мошенникам: что изменится для банков и клиентов Новости в сети 0

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