Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Визуальное программирование / Визуальное программирование_лекция_19.pps
Скачиваний:
31
Добавлен:
07.06.2015
Размер:
201.73 Кб
Скачать

Создание компонентов в

Delphi

1

Пакеты компонентов

В Delphi компоненты хранятся в пакетах (packages). Список используемых пакетов компонентов можно вызвать с помощью пункта меню Component/Install Packages (диалоговое окно имеет заголовок Project Options).

При помощи диалогового окна можно добавить новый пакет (Add), удалить имеющийся (Remove). Удаление означает не физическое удаление файла с диска, а удаление ссылки из среды разработки на данный пакет. При добавлении нового пакета компоненты, хранящиеся в нем, появляются на палитре, а при удалении – наоборот, исчезают. Пакет можно не удалять, а «спрятать» его содержимое на этапе разработки посредством снятия отметки напротив имени пакета в списке. Можно также просмотреть компоненты и их пиктограммы (Components). Можно отредактировать добавленные пользователем пакеты (Edit).

2

Объявление класса

Переменные типа класс обычно называют объектами.

Вновь создаваемый класс может содержать секции (разделы), определяемые зарезервированными словами published (опубликованные), private (закрытые), protected (защищенные), public (открытые) и automated (автоматизированные). Внутри каждой секции вначале определяются поля, а затем методы и свойства.

3

Объявление класса

Разделы определяют область видимости элементов описания класса. Поля, свойства и методы описанные в секции public можно вызывать в любом другом модуле программы. Секция published также не ограничивает область видимости, однако в ней перечисляются свойства, которые должны быть доступны не только на этапе исполнения, но и на этапе конструирования программы (в окне инспектора объектов).

Закрытые элементы описания указанные в секции private доступны только внутри методов данного класса и подпрограммах, находящихся в том же модуле где описан класс. Секция protected (защищенные) доступна только методам самого класса, а также любым его потомкам, независимо от того, находятся ли они в том же модуле или нет. Секция automated (автоматизированные) используется только для объявления свойств и методов, которые будут добавлены к

интерфейсу OLE-объектов автоматизации.

4

 

Объявление класса

Создание нового компонента начинается по команде File/New…/Component. В результате открывается диалоговое окно новый компонент (New Component).

В этом окне определяется тип класса-родителя, имя создаваемого класса, страница палитры компонентов, имя файла модуля, список каталогов, в которых выполняется поиск файла модуля.

После заполнения всех полей и нажатия кнопки Ok создается модуль QMyButton, текст которого отображается в редакторе кода. Этот модуль содержит описание класса TMyButton, созданного на основе класса TMyButton.

unit QMyButton; interface

uses

SysUtils, Classes, QControls, QStdCtrls; type

TMyButton = class(TButton) private

{Private declarations } protected

{Protected declarations } public

{Public declarations } published

{Published declarations }

end;

procedure Register; implementation

procedure Register; begin

RegisterComponents('Samples', [TMyButton]); end;

бО яъ лв ен еи

кл сса а

6

end.

Создание простых свойств

Свойства, которые должны быть доступны программно, описываются в разделах published (опубликованные) и public (открытые), в противном случае их помещают в раздел protected (защищенные).

Описание свойства имеет следующий синтаксис: property <имя_свойства>: <тип_свойства> <Спецификаторы>;

Основными спецификаторами свойства являются read и write, соответственно определяющие возможность чтения и записи значения свойства. Необходимо указать хотя бы один из этих спецификаторов. После спецификатора указывается имя поля или метода. Если значение свойства непосредственно связано со значением своего поля, то в спецификаторе указывается имя этого поля.

7

Создание простых свойств

Пример формата описания: property <имя_свойства>: <тип_свойства>

read <имя_поля> write <имя_поля>;

8

Пример создания простых свойств

TMyButton = class(TButton) private

{ Private declarations } FMyInteger: integer; FMyChar: Char; FMyString: string; protected

{Protected declarations } public

{Public declarations } published

{Published declarations }

property MyInteger: integer read FMyInteger write FMyInteger; property MyChar: char read FMyChar write FMyChar;

property MyString: char read FMyString write FMyString; 9 end;

Создание перечислимого свойства и

свойства-множества

Перечислимые свойства принадлежат перечислимому или логическому типам и позволяют выбрать одно значение из предлагаемого списка. Например, Align или

Visible.

10