Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

Создание собственных компонентов в Delphi.


Информационный Канал Subscribe.Ru

СОЗДАНИЕ СОБСТВЕННЫХ КОМПОНЕНТОВ В DELPHI

Здравствуй, уважаемый читатель!


Cегодня мы поговорим об использовании мастера компонентов.

Мастер компонентов упрощает начальные стадии создания компонента. Когда вы используете мастера компонентов, вам нужно определить только следующие вещи:

 -   Класс, от которого будет произведен компонент
 -   Имя класса для нового компонента
 -   Страница палитры компонентов, где вы хотите, чтобы появился новый компонент
 -   Имя модуля, в котором компонент будет создан
 -   Путь к файлу модуля компонента
 -   Имя пакета, в который вы хотите поместить компонент
Мастер компонентов выполняет те же задачи, которые придется выполнять вам при создании компонента вручную:
 -   Создание модуля
 -   Производство компонента
 -   Регистрация компонента
Мастер компонентов не может добавить компоненты в существующий модуль. Вам придется добавлять компоненты к существующим модулям вручную.
Чтобы запустить Мастера компонентов, воспользуйтесь одним из двух способов:
 -   Выберите Component|New Component
 -   Выберите File|New|Other и дважды щелкните мышью на Component
Заполните поля в Мастере компонентов:
1.  В поле Ancestor Type (Тип предка), определите класс, от которого вы производите ваш новый компонент
Примечание: В раскрывающемся списке много компонентов перечислены дважды с различными именами модуля, один для VCL и один для CLX. Имена модулей CLX начинаются с буквы Q (Типа QGraphics вместо Graphics). Убедитесь, что вы наследуете свой компонент от нужного предка.
2.  В поле Class Name (Имя класса) определите имя вашего нового класса компонентов.
3.  В поле Palette Page (Страница Палитры компонентов) определите страницу из палитры компонентов, на которой вы хотите установить новый компонент.
4.  В поле Unit file name (Имя файла модуля) определите имя модуля в котором вы хотите объявит класс компонента.
5.  Если модуль не находится в пределах пути поиска Delphi, то при необходимости отредактируйте поле Search path (Путь поиска)
Чтобы разместить компонент в новом или существующем пакете, нажмите Component|Install и в появившемся диалоговом окне определите пакет.
Предупреждение: Если вы производите компонент от VCL или CLX класса, чье имя начинается с "Custom" (типа TCustomControl), не пробуйте помещать новый компонент на форму до тех пор, пока вы не переопределили каждый абстрактный метод в оригинальном компоненте. Delphi не может создавать объекты класса, который имеет абстрактные свойства или методы.
Чтобы увидеть исходный код вашего модуля, нажмите View Unit. (Если Мастер компонентов уже закрыт, открывайте файл модуля в Редакторе кода, выбирая File|Open.) Delphi создает новый модуль, содержащий объявление класса и процедуру Register, а также добавляет раздел uses, который включает все стандартные модули Delphi.
Модуль будет похож на этот, если будет наследоваться от TCustomControl из модуля Controls:
unit MyControl;
interface
uses
Windows, Messages, SysUtils, Classes, Controls;
type TMyControl = class(TCustomControl)
private
{ Private declarations }
protected
{ Protected declarations }
public
{ Public declarations }
published
{ Published declarations }
end;
procedure Register;
implementation
procedure Register;
begin
  RegisterComponents('Samples', [TMyControl]);
end;
end.
Если наследование будет от TCustomControl из модуля QControls, то единственное отличие будет заключаться в разделе uses, который будет выглядеть так:
uses
Windows, Messages, SysUtils, Classes, QControls;
В тех случаях, когда CLX использует отдельные модули, они заменяются одноименными модулями с префиксом Q: Controls заменяется на QControls.
В следующий раз мы поговорим о создании компонента вручную.
Полную версию моего рассказа ты найдешь на сайте http://dcomponents.narod.ru
Если у тебя есть свой материал на тему создания компонента и ты готов им поделиться с другими, пиши мне.
Дельфин.
Выпуск 8 от 28.11.2003


http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное