- •Создание компонентов в
- •Пакеты компонентов
- •Объявление класса
- •Объявление класса
- •Объявление класса
- •unit QMyButton; interface
- •Создание простых свойств
- •Создание простых свойств
- •Пример создания простых свойств
- •Создание перечислимого свойства и
- •Создание перечислимого свойства и
- •Пример создания перечислимого
- •Пример создания перечислимого
- •Пример создания перечислимого
- •Пример создания перечислимого
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-массив
- •Создание свойства-объект
- •Создание свойства-объект
- •Создание свойства-объект
- •Создание свойства-объект
- •Создание свойства-объект
- •Инсталляция компонента
- •Определение нового пакета компонентов
Создание компонентов в
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