- •В телекоммуникациях ” Преподаватель: доцент кафедры прикладной математики и кибернетики
- •Цель курса– ознакомление с общими принципами визуального программирования на примере системы Delphi.
- •Пример оформления контрольной работы. Вариант 12
- •1.1Структура программы 7
- •Рабочая программа курса
- •Основные конструкции языка Паскаль
- •Структура программы
- •Операторы языка Паскаль
- •Процедуры и функции
- •Объектно-ориентированная методология
- •Различные технологии программирования
- •Принципы объектно-ориентированного программирования
- •Модули и классы
- •Знакомство со средой программирования Delphi
- •Структура среды программирования
- •Проект Delphi
- •Главное меню среды
- •Первое приложение на Delphi
- •Контрольные вопросы
- •Библиотека визуальных компонентов (vcl)
- •Иерархия базовых классов vcl
- •Типы свойств компонентов. Изменение свойств
- •Некоторые общие свойства компонентов
- •События в Delphi
- •Некоторые общие события компонентов
- •Контрольные вопросы
- •Класс tForm
- •Роль формы в приложении
- •Свойства класса tForm
- •События формы
- •Пример использования событий формы
- •Контрольные вопросы
- •Графические возможности визуальных компонентов
- •Свойства класса tCanvas
- •Методы класса tCanvas
- •Примеры использования свойств и методов класса tCanvas
- •Использование визуальных компонентов
- •Редактируемые компоненты
- •Списки выбора
- •Диалоговые компоненты
- •Переключатели
- •Контрольные вопросы
- •Лабораторная работа 1
- •Лабораторная работа 2
- •Лабораторная работа 3
- •Лабораторная работа 4
- •Лабораторная работа 5
- •Контрольная работа правила выполнения и оформления контрольной работы
- •Правила получения зачета
- •Литература
Некоторые общие свойства компонентов
Рассмотрим некоторые свойства, которыми обладает каждый визуальный компонент, поскольку эти свойства наследуются от базовых классов иерархии библиотеки визуальных компонентов. Класс TComponent является предком всех визуальных компонентов и от него компоненты получают следующие свойства.
Таблица 1 Свойства класса TComponent
Свойство |
Назначение |
Name |
идентификатор компонента |
Tag |
четырехбайтовое целое свойство, которое программист может использовать по своему усмотрению |
От класса TControl порождаются все видимые визуальные компонента и наследуют свойства, связанные расположением и внешним видом компонента. Эти свойства можно разбить на несколько групп.
Таблица 2 Размер и местоположение компонента
Свойство |
Назначение |
Top |
местоположение левого верхнего угла компонента по вертикали |
Left |
местоположение левого верхнего угла компонента по горизонтали |
Height |
высота компонента |
Width |
ширина компонента |
Таблица 3 Выравнивание и масштабирование
Свойство |
Назначение |
Align |
выравнивание компонента относительно границ родительского компонента |
Alignment |
выравнивание надписи на компоненте |
Anchors |
фиксация компонента по сторонам родительского компонента |
Constraints |
сложное свойство, определяющее максимально и минимально допустимые размеры компонента |
AutoSize |
логическое свойство, разрешающее или запрещающее автоматическое изменение размеров компонента в соответствии с размером его содержимым |
Таблица 4 Внешний вид
Свойство |
Назначение |
Color |
цвет компонента |
Cursor |
вид курсора при наведении указателя мыши на компонент |
Caption |
надпись на компоненте |
Font |
сложное свойство, определяющее тип шрифта надписи |
Visible |
логическое свойство, определяющее видимость компонента |
PopupMenu |
логическое свойство, разрешающее или запрещающее использование всплывающего меню |
Enabled |
логическое свойство, определяющее доступность компонента |
Hint |
текст подсказки, которая появляется при задержке курсора мыши на компоненте |
ShowHint |
логическое свойство, разрешающее или запрещающее использование подсказки |
События в Delphi
Одна из ключевых целей среды визуального программирования – скрыть от пользователя сложность программирования в Windows. При этом, однако, хочется, чтобы такая среда не была бы упрощена до такой степени, что программисты потеряют доступ к самой операционной системе.
Программирование, ориентированное на события – неотъемлемая черта Windows. Delphi предоставляет полный доступ к подструктуре событий, совершаемых в операционной среде Windows. С другой стороны, Delphi упрощает программирование обработчиков таких событий.
Объекты из библиотеки визуальных компонент (VCL) Delphi, равно как и объекты реального мира, имеют свой набор свойств и свое поведение - набор откликов на события, происходящие с ними. Список событий для данного объекта, на которые он реагирует, можно посмотреть, например, в Инспекторе Объектов на странице событий. (На самом деле, на этой странице представлен список свойств, которые представляют из себя ссылки на процедуры-обработчики событий.) Среди набора событий для различных объектов из VCL есть как события, портируемые из Windows (например, события, которые генерируются мышью или клавиатурой), так и события, порождаемые в результате прогона приложения путем изменения свойств объектов).
Поведение объекта определяется тем, какие обработчики и для каких событий он имеет. Создание приложения в Delphi состоит из настройки свойств используемых объектов и создания обработчиков событий.
Простейшие события, на которые иногда нужно реагировать - это, например, события, связанные с мышкой (они есть практически у всех видимых объектов) или событие OnClick для кнопки TButton. Все события в Delphi принято предварять префиксом on: onCreate, OnMouseMove, OnPaint и так далее. Щелкнув в Инспекторе объектов на странице Events в поле любого события, можно получить в программе заготовку метода нужного типа. При этом его имя будет состоять из имени текущего компонента и имени события (без префикса On), а относиться он будет к текущей форме. Например, обработчик щелчка левой кнопки мыши на форме будет выглядеть так:
procedure TForm1.Button1Click(Sender: TObject);
begin
end;
Поскольку события — это свойства объекта, их значения, можно изменять в любой момент во время выполнения программы. Эта замечательная возможность называется делегированием. Можно в любой момент взять способы реакции на события у одного объекта и присвоить (делегировать) их другому:
Object1.OnMouseMove := Object2.OnMouseMove;
Принцип делегирования позволяет избежать трудоемкого процесса порождения новых дочерних классов для каждого специфического случая, заменяя его простой подстановкой процедур. Можно при необходимости выбирать один из нескольких возможных вариантов обработчиков событий.