Партнерка на США и Канаду по недвижимости, выплаты в крипто
- 30% recurring commission
- Выплаты в USDT
- Вывод каждую неделю
- Комиссия до 5 лет за каждого referral
Итак, процедуру будут связаны с событиями объектов, они будут запускаться при появлении того или иного события. Но возникает еще один вопрос: событие какого объекта выбрать? Принципиально важно верно определить объект, от которого зависит процедура, и событие, связанное с этим объектом.
Форма и каждый ее объект обладает значительным перечнем событий, и не представляется физически возможным рассмотреть каждое из них. Поэтому будет рассматривать события, используемые при выполнении заданий пособия.
Итак, определены процедуры, определены объекты и их события, которые эти процедуры будут запускать. Как же написать саму процедуру. Во-первых, следует открыть окно написания кода процедуры. Это нужно сделать в конструкторе формы, выполнив двойной щелчок левой кнопкой мыши по форме или объекту. В результате будет открыто окно, представленное на рис. 59.

Рис. 59 – Окно написания процедуры
Окно написания процедуры содержит 3 основных части:
Object – список объектов, с которыми связана процедура. Список аналогичен списку выбора объектов панели Properties. Procedure – список событий, с которыми связывается процедура. События отсортированы в алфавитном порядке. Окно ввода.При написании любой процедуры следует контролировать, верно ли выбраны объект и его событие.
Некоторые события формы
Load Форма загружается, но в момент возникновения данного события ни один объект формы не создан, поэтому невозможно задать свойства объектов формы. Можно открыть таблицы базы данных и ввести команды настройки.
Init Инициализация формы. Объекты формы уже созданы и можно задать какие-либо начальные значения.
Refresh Обновление формы.
Release Закрытие формы.
Click На форме выполнен щелчок левой кнопкой мыши.
Некоторые события текстового поля
Click Одинарный щелчок левой кнопкой мыши по полю.
DblClick Двойнойщелчок левой кнопкой мыши по полю.
GotFocus Фокус (курсор) входит в поле.
LostFocus Фокус(курсор) покидает поле.
Некоторые события раскрывающегося списка
Valid Событие, наступающее при выборе значения из списка.
ЗАДАНИЕ 14. Осуществление простых вычислений на форме
Большое количество вычислений будет произведено на одной из самых важных форм проекта – форме, с помощью которой будет оформляться выдача дисков в прокат и формирование договора проката дисков. Кроме наличия вычислений, данная форма сама по себе будет иметь достаточно сложную структуру.
Запустите проект dvd. pjx. С помощью мастера форм создайте форму oformlenie. scx, вид которой представлен на рис. 60: обратите внимание, что в основной части формы отображаются данные таблицы prokat, поэтому она будет указана в качестве родительской в мастере форм; обратите внимание, что в табличной части Grid отображаются данные таблицы sostav, поэтому она будет указана в качестве подчиненной в мастере форм.
Рис. 60 – Первоначальный вид формы oformlenie
Отредактируйте форму так, чтобы она прияла вид, представленный на рис. 61:
Рис. 61 – Структура преобразованной формы
создание раскрывающихся списков Клиент (Combo1) и Сотрудник (Combo2) выполните аналогично действиям ЗАДАНИЯ 8 или ЗАДАНИЯ 9 (при раскрытии списков должны отображаться фамилия, имя и отчество клиента или сотрудника соответственно); добавление полей, отображающих имена и отчества клиентов и сотрудников, выполните перетаскиванием из окна DataEnvironment или аналогично п.9 ЗАДАНИЯ 7; скройте поле data_fakt1 и соответствующую надпись, используя свойство visible; выполните изменение расположения и шрифта полей и надписей. С помощью созданной формы добавьте в базу данных две записи о договорах проката. Обратите внимание: не забудьте использовать кнопкиДоговор № | Начало проката | Клиент | Сотрудник | Окончание проката |
1 | 08/13/2014 | 08/20/2014 | ||
2 | 08/30/2014 | 09/10/2014 |

Рис. 62 – Изменение формата даты при загрузке формы
Запустите форму и убедитесь, что формат даты в полях изменен. Добавьте на форму вычисляемое поле, в котором будет рассчитываться срок проката в днях: на панели инструментов FormControls выберите объект
Рис. 63 – Вычисление количества дней проката дисков
Запустите форму, выполните переходы по записям и убедитесь в правильности расчета длительности проката. Отредактируйте форму так, чтобы при выборе фамилии клиента динамически менялись соответствующие имя и отчество (обратите внимание, что на данный момент изменение происходит при сохранении записи формы или при щелчке в этих полях). Поскольку изменение имени и отчества зависит от выбора фамилии, то, очевидно, что соответствующая процедура будет связана именно с раскрывающимся списком фамилий клиентов Combo1. Изменение происходит после осуществления выбора, поэтому процедуру следует связать с событием valid. Выполните двойной щелчок на раскрывающемся списке, в результате чего будет запущено окно ввода кода процедуры, в поле Obiect которого отображается Combo1 (список фамилий клиентов). В поле Procedure выберите событие valid и введите команду thisform. refresh – обновление формы, в т. ч. и полей с именем и фамилией. Действуя аналогично, отредактируйте форму так, чтобы при выборе фамилии сотрудника динамически менялись соответствующие имя и отчество. Проверьте правильность выполнения задания, изменив в договоре №2 клиента на . Завершите работу с проектом.ЗАДАНИЕ 15. Программное изменение данных столбца Grid
В результате выполнения задания при оформлении выдачи в прокат каждого диска автоматически будет проставляться отметка Выдан (поле Disk. v_prokпринимает значение. T.).
Запустите проект dvd. pjx. Откройте для редактирования в конструкторе форму oformlenie. scx. Прежде всего, отредактируйте Grid так, чтобы она приняла вид, представленный на рис. 64 – в таком варианте при оформлении каждого проката дисков есть возможность фиксировать, какие именно диски выданы на руки клиенту, а так же можно рассчитать стоимость проката каждого диска. Обратите внимание, что Grid будет содержать поля двух таблиц базы данных, поэтому для настройки Grid следует использовать только панель Properties, а не построитель Builder.
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |


