- •В телекоммуникациях ” Преподаватель: доцент кафедры прикладной математики и кибернетики
- •Цель курса– ознакомление с общими принципами визуального программирования на примере системы Delphi.
- •Пример оформления контрольной работы. Вариант 12
- •1.1Структура программы 7
- •Рабочая программа курса
- •Основные конструкции языка Паскаль
- •Структура программы
- •Операторы языка Паскаль
- •Процедуры и функции
- •Объектно-ориентированная методология
- •Различные технологии программирования
- •Принципы объектно-ориентированного программирования
- •Модули и классы
- •Знакомство со средой программирования Delphi
- •Структура среды программирования
- •Проект Delphi
- •Главное меню среды
- •Первое приложение на Delphi
- •Контрольные вопросы
- •Библиотека визуальных компонентов (vcl)
- •Иерархия базовых классов vcl
- •Типы свойств компонентов. Изменение свойств
- •Некоторые общие свойства компонентов
- •События в Delphi
- •Некоторые общие события компонентов
- •Контрольные вопросы
- •Класс tForm
- •Роль формы в приложении
- •Свойства класса tForm
- •События формы
- •Пример использования событий формы
- •Контрольные вопросы
- •Графические возможности визуальных компонентов
- •Свойства класса tCanvas
- •Методы класса tCanvas
- •Примеры использования свойств и методов класса tCanvas
- •Использование визуальных компонентов
- •Редактируемые компоненты
- •Списки выбора
- •Диалоговые компоненты
- •Переключатели
- •Контрольные вопросы
- •Лабораторная работа 1
- •Лабораторная работа 2
- •Лабораторная работа 3
- •Лабораторная работа 4
- •Лабораторная работа 5
- •Контрольная работа правила выполнения и оформления контрольной работы
- •Правила получения зачета
- •Литература
События формы
При создании и отображении формы происходят пять следующих событий
Таблица 6 CобытияTFormпри создании и отображении формы
Событие |
Назначение |
OnCreate |
Возникает при создании окна, но до его появления на экране. Позволяет распределить ресурсы и провести необходимую инициализацию компонентов и форм. |
OnShow |
Возникает при появлении окна на экране. К этому времени все компоненты и формы созданы и инициализированы |
OnResize |
Возникает при изменении размеров окна |
OnActivate |
Возникает в момент активизации окна (при получении фокуса ввода) |
OnPaint |
Возникает при необходимости прорисовки окна |
Событие OnCreate происходит один раз за все время существования формы, прочие события могут вызываться неоднократно. При закрытии и уничтожении формы также генерируются пять событий.
Таблица 7 CобытияTFormпри закрытии и уничтожении формы
Событие |
Назначение |
OnCloseQuery |
Возникает перед закрытием окна, в ответ на действия, закрывающие окно. Обработчик получает логическую переменную CanClose, определяющую может ли форма быть закрыта. |
OnClose |
Возникает перед закрытием окна. Параметр Action уточняет необходимые действия: саNоnе – не закрывать окно; caHide – спрятать окно; caFree – уничтожить окно; caMimimize – минимизировать окно |
OnDeactivate |
Возникает при передаче активности другому окну той же программы |
OnHide |
Возникает перед исчезновением окна |
OnDestroy |
Возникает перед уничтожением окна. Обычно используется для освобождения ресурсов, выделенных в OnCreate. |
Кроме этих событий, для формы определены события от мыши и клавиатуры, которые класс TForm наследует от своих предков.
Пример использования событий формы
Рассмотрим фрагмент кода, который восстанавливает размеры и положение формы (свойства Top, Left, Width, Height, Caption), сохраненные в файл при предыдущем закрытии. Для этого создадим обработчик события OnCreate, в котором необходимые свойства формы инициализируются значениями из файла.
procedure TForm1.FormCreate(Sender: TObject);
var f: TextFile;
begin
AssignFile(f, ‘myfile.txt’);
If FileExists(f) then
begin Readln(f, IntToStr(Top));
Readln(f, IntToStr(Left));
Readln(f, IntToStr(Width));
Readln(f, IntToStr(Height));
Readln(f, Caption);
end;
end;
При попытке закрытия формы, т.е. при генерации события OnCloseQuery, создается диалоговое окно для подтверждения закрытия окна.
procedure TForm1.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
If MessageDlg('Exit now?', mtConfirmation, [mbYes, mbNo], 0) = mrYes
then CanClose:=True
else CanClose:=False;
end;
end;
В обработке события закрытия формы OnClose значения необходимых свойств записываются в файл.
procedure TForm1.FormClose(Sender: TObject;
var Action: TCloseAction);
var f: TextFile;
begin
AssignFile(f, ‘myfile.txt’);
WriteLn(f, IntToStr(Top));
WriteLn(f, IntToStr(Left));
WriteLn(f, IntToStr(Width));
WriteLn(f, IntToStr(Height));
WriteLn(f, Caption);
end;