DELPHISOURCE

Домой | Статьи | Книги | FAQ | Компоненты | Программы
Архив сайта | Реклама на сайте | Ссылки | Связь

Разработка собственных компонентов


Александр Василевский


Если вас не устраивают стандартные компоненты, поставляемые вместе с Delphi, значит, вам пора попробовать себя в создании своих собственных. Сначала мы начнем с простых и постепенно перейдем к более сложным. И так, начнем.

Перед созданием своего компонента важно правильно выбрать для него предка. Кто же может быть предком для вашего компонента? Как правило, используются в виде предков TComponent, TControl, TWinControl, TGraphicControl, TCustomXXXXXX, а также все компоненты палитры компонентов. Возьмем для примера компонент TOpenDialog, который находится на странице Dialogs палитры компонентов. Он хорошо справляется со своей задачей, но у него есть одно маленькое неудобство. Каждый раз, когда его используешь необходимо каждый раз изменять значение свойства Options. И причем это, как правило, одни и те же действия.
OpenDialog1.Options := OpenDialog1.Options + [ofFileMustExist, ofPathMustExist];
чтобы файл, который мы пытаемся открыть с помощью этого диалогового окна, действительно существовал на диске.

Задание для себя мы уже выбрали, осталось за малым - создать компонент. Заготовку для компонента создаем, выбирая из меню команду Component/New Component... и в диалоговом окне выбираем

Ancestor type: TOpenDialog
Class Name: TOurOpenDialog
Palette Page: Our Test

Нажали Ok и у нас появился шаблон нашего будущего компонента.

Переопределяем конструктор у этого компонента, т.е. в секции public вставляем строку:
constructor Create(AOwner: TComponent); override;
нажатие на этой строке Ctrl + Shift + C создает шаблон для этого метода, внутри которого мы вставляем такие строки:
inherited Create(AOwner); {Вызываем унаследованный конструктор}
Options := Options + [ofFileMustExist, ofPathMustExist]; {Выполняем необходимые нам действия}


Обратите внимание: Комбинации клавиш Ctrl + Shift + стрелки вверх/вниз позволяют перемещаться между объявлением метода и его реализацией.

Установка созданного компонента Component/Install Component...


Install Into New Package
Package file name: C:\Program Files\Borland\Delphi4\Lib\OurTest.dpk
Package description: Our tested package

Вам не нравится, что у нашего компонента иконка такая же как у стандартного? Тогда создадим для него свою собственную. Для этого нам необходимо вызвать Tools/Image Editor. Создаем новый *.dcr файл. Вставляем в него рисунок Resource/New/Bitmap. Устанавливаем размер картинки 24x24 точек. А дальше - ваше творчество... Обратите внимание: цвет точек, совпадающий с цветом точки в левом нижнем углу рисунка, будет считаться ПРОЗРАЧНЫМ!

После того как вы создали свой рисунок, переименуйте его из Bitmap1 в TOurOpenDialog и сохраните файл с именем OurOpenDialog.dcr. Удалите компонент из пакета и установите его снова (только в этом случае добавится и ссылка на *.dcr файл).

Compile, Install и удачи!

{======================================================}



unit OurOpenDialog;



interface



uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;



type

  TOurOpenDialog = class(TOpenDialog)

  private

    { Private declarations }

  protected

    { Protected declarations }

  public

    { Public declarations }

    constructor Create(AOwner: TComponent); override;

  published

    { Published declarations }

  end;



procedure register;



implementation



procedure register;

begin

  RegisterComponents('Samples', [TOurOpenDialog]);

end;



{ TOurOpenDialog }



constructor TOurOpenDialog.Create(AOwner: TComponent);

begin

  inherited Create(AOwner); {Вызываем унаследованный конструктор}

  Options := Options + [ofFileMustExist, ofPathMustExist];

  {Выполняем необходимые нам действия}

end;



end.

{======================================================}

 

Delphisource (2006г.)
Используются технологии uCoz