Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЯПВУ.Delphi.doc
Скачиваний:
17
Добавлен:
11.04.2015
Размер:
3.25 Mб
Скачать
    1. Некоторые общие свойства компонентов

Рассмотрим некоторые свойства, которыми обладает каждый визуальный компонент, поскольку эти свойства наследуются от базовых классов иерархии библиотеки визуальных компонентов. Класс 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

логическое свойство, разрешающее или запрещающее использование подсказки

    1. События в 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;

Принцип делегирования позволяет избежать трудоемкого процесса порождения новых дочерних классов для каждого специфического случая, заменяя его простой подстановкой процедур. Можно при необходимости выбирать один из нескольких возможных вариантов обработчиков событий.