| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
| ||||||||||||||||
![]() |
Разработка собственных компонентов Если вас не устраивают стандартные компоненты, поставляемые вместе с Delphi, значит, вам пора попробовать себя в создании своих собственных. Сначала мы начнем с простых и постепенно перейдем к более сложным. И так, начнем. Перед созданием своего компонента важно правильно выбрать для него предка.
Кто же может быть предком для вашего компонента? Как правило, используются
в виде предков TComponent,
TControl, TWinControl, TGraphicControl, TCustomXXXXXX, а также все
компоненты палитры компонентов. Возьмем для примера компонент TOpenDialog, который находится на странице
Dialogs палитры компонентов. Он хорошо справляется со своей задачей, но у
него есть одно маленькое неудобство. Каждый раз, когда его используешь
необходимо каждый раз изменять значение свойства Options. И причем это, как
правило, одни и те же действия.
Задание для себя мы уже выбрали, осталось за малым - создать компонент.
Заготовку для компонента создаем, выбирая из меню команду Component/New
Component... и в диалоговом окне выбираем
Нажали Ok и у нас появился шаблон нашего будущего компонента. Переопределяем конструктор у этого компонента, т.е. в секции public
вставляем строку:
Установка созданного компонента Component/Install Component...
Вам не нравится, что у нашего компонента иконка такая же как у стандартного? Тогда создадим для него свою собственную. Для этого нам необходимо вызвать 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. {======================================================} |
|
![]() | ||||||||||||||||
| ||||||||||||||||
![]() | ||||||||||||||||
|