"Интернет решения от доктора Боба" - читать интересную книгу автора (Swart Bob)

1.1.11. Регистрация компонента

При регистрации компонента TUUCode, полезно добавить редактор свойства FileName (InputFile), что обеспечит дополнительный комфорт для конечного пользователя. Редактор этого свойства реализован в модуле UUReg, который регистрирует компонент TUUCode в палитре компонентов Дельфи.

unit UUReg;

 interface

 {$IFDEF WIN32}

   {$R UUCODE.D32}

 {$ELSE}

   {$R UUCODE.D16}

 {$ENDIF}

 uses

   DsgnIntf;

 type

   TFileNameProperty = class(TStringProperty)

   public

     function GetAttributes: TPropertyAttributes; override;

     procedure Edit; override;

   end;


 procedure Register;


 implementation

 uses

   UUCode, Classes, Dialogs, Forms, SysUtils;


   function TFileNameProperty.GetAttributes: TPropertyAttributes;

   begin

     Result := [paDialog]

   end {GetAttributes};


   procedure TFileNameProperty.Edit;

   begin

     with TOpenDialog.Create(Application) do

     try

       Title := GetName; { name of property as OpenDialog caption }

       Filename := GetValue;

       Filter := 'All Files (*.*)|*.*';

       HelpContext := 0;

       Options := Options +

                 [ofShowHelp, ofPathMustExist, ofFileMustExist];

       if Execute then SetValue(Filename);

     finally

       Free

     end

   end {Edit};


   procedure Register;

   begin

     { component }

     RegisterComponents('DrBob42', [TUUCode]);

     { property editor }

     RegisterPropertyEditor(TypeInfo(TFilename), nil,

                           'InputFile', TFilenameProperty);

   end {Register};

 end.

Если вы желаете использовать компонент TUUCode в составе, какого либо пакета, то вы должны поместить компонент UUCode в пакет времени выполнения (runtime package), и модуль UUReg в пакет разработки (design-time), который требует пакет времени выполнения. В действительности, для использования пакетов вы можете использовать UUCode Wizard из следующей главы в пакет времени разработки и сделать его доступным в IDE Delphi для всех пользователей!