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г.) |