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
Support81 Шпион из ЦРУ превратил Telegram в площадку для государственной тайны Новости в сети 0
Support81 SMS для Google и Meta? Перешлём через Намибию, Чечню и швейцарский гараж Новости в сети 0
wrangler65 Katz Stealer: новая опасная малварь для кражи данных с функциями скрытности и модульности Новости в сети 0
wrangler65 Киберпартизаны атакуют: новый бэкдор Vasilek использует Telegram для управления зараженными системами Новости в сети 0
smmgoal Интересно BrownVPN – Ваш надежный VPN для конфиденциальности, безопасности и свободы Ищу работу. Предлагаю свои услуги. 0
Support81 Хватило трёх 0Day, чтобы превратить Versa Concerto в инструмент для захвата систем связи Новости в сети 0
Support81 Семь лет в тени, одна экстрадиция, и всё — финальные титры для админа BlackDB Новости в сети 0
Support81 RTX 5090: Nvidia создала монстра для взлома паролей и скромно назвала его видеокартой Новости в сети 0
Support81 Код, который должен проверять других, сам стал лазейкой для хакеров — что не так с Langflow? Новости в сети 0
Support81 Хакер взломал мессенджер для чиновников и нашёл внутри полный архив их переписок Новости в сети 0
smmgoal Esimbuy.org Откройте для себя пакеты данных Travelsim Ищу работу. Предлагаю свои услуги. 0
Chekon ✅ sms.chekons.com - ⭐ Сайт для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" от 0.4$ за номер⭐ Ищу работу. Предлагаю свои услуги. 0
Support81 CouchDB как проходной двор: эксплойты для критической SSH-уязвимости уже гуляют по сети Новости в сети 0
Support81 JUICYJAM: государство завело аккаунт для доносов Новости в сети 0
Support81 VShell? Скорее уж VHell: новый кошмар для Linux от UNC5174 Новости в сети 0
Support81 «PIN-код на лбу безопаснее»: Perplexity AI оказался настоящей находкой для шпиона Новости в сети 0
Support81 Драйвер от Dell, библиотека от ESET: хакеры ToddyCat собрали конструктор для взлома Windows Новости в сети 0
Support81 PIN-код для свободы: новый Android-шпион категорически против своего удаления Новости в сети 0
Support81 Март стал чёрным месяцем для Coinbase: похищено 46 млн долларов Новости в сети 0
Support81 Ошибка на TOR-сайте обернулась концом сразу для трёх группировок Новости в сети 0

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