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
D Рекламная сеть, кампания технической поддержки, генерировать звонки для службы технической поддержки Предоставляю работу. Ищу специалиста. 1
K P2P схемы для чайников (или как заработать дэнег) Способы заработка 0
Multi-VPN Интересно aTox и TRIfA мессенджеры твоей мечты для Android Полезные статьи 0
Support81 Цифровой ГУЛАГ: новая реальность для пользователей VPN в Китае Новости в сети 0
Multi-VPN aTox и TRIfA мессенджеры твоей мечты для Android Настройка системы для работы 0
Support81 0day в WPS Office: как обычный документ становится плацдармом для запуска бэкдора SpyGlace Новости в сети 0
smmgoal Esimbuy.org Откройте для себя пакеты данных Travelsim Ищу работу. Предлагаю свои услуги. 0
TrustDomains Проверено Трастовые домены для рекламы Яндекс и Гугл Куплю/Продам 0
Support81 Xeon Sender: новое оружие хакеров для мощных SMS-бомбардировок Новости в сети 0
Support81 Cyclops: Иранские хакеры готовят почву для масштабных кибератак Новости в сети 0
G Нужны люди для работы Предоставляю работу. Ищу специалиста. 0
Support81 Стань невидимым для EDR: новый блокировщик от Tier Zero Security Новости в сети 0
Support81 На телефон поступил одноразовый код? Похоже, он предназначен не для вас Новости в сети 0
Support81 План Б для интернета: НАТО готовится к худшему сценарию Новости в сети 1
Chekon ✅ sms.chekons.com - ⭐ Сайт для получения SMS на реальные номера USA "Non-VoIP, безлим SMS, API" от 0.4$ за номер⭐ Ищу работу. Предлагаю свои услуги. 0
Support81 Eldorado: новый цифровой кошмар для бизнеса Новости в сети 0
@little_polly_base Продам Базы данных для любой деятельности(Опт) Все что не подошло по разделу 29
Support81 Китай – новый электронный концлагерь для туристов Новости в сети 0
Support81 0day-эксплойт для Chrome выставлен на продажу за $1 000 000 Новости в сети 0
Support81 Прецедент для России: прокуратура Ленобласти взыскивает деньги с оператора за дистанционное мошенничество Новости в сети 0

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