как добавить TAboutBox в TCustomControls? - PullRequest
1 голос
/ 19 июля 2010

Я хочу добавить aboutbox / dialogbox в мой пользовательский компонент. как заставить маленькую кнопку [...] появляться на инспекторе объектов? точно так же, как назначение изображения для компонента Timage.

1 Ответ

2 голосов
/ 19 июля 2010

Вы должны определить свойство, подобное этому:

//: Información acerca del paquete de componentes
property AboutMe:TFAbout read FAboutG stored false;

TFAbout - это класс, который определяет форму, которую вы хотите видеть (О форме), когда пользователь нажимает на свойство в «Инспекторе объектов».

Кроме того, вы должны зарегистрировать «Редактор свойств», если вы хотите увидеть buuton с тремя точками | ... | в ОИ.

Это образец единицы измерения:

unit UTAboutProp;

interface

uses
  DesignIntf, DesignEditors;

type
  TAboutGProp = class(TPropertyEditor)
  public
    procedure Edit(); override;
    function GetValue(): string; override;
    function GetAttributes(): TPropertyAttributes; override;
  end;

implementation

uses
  SysUtils, FormAbout, UConstantes;

procedure TAboutGProp.Edit();
begin
  with TFAbout.Create(nil) do
  try
    ShowModal();
  finally
    Free();
  end;
end;

function TAboutGProp.GetValue(): string;
begin
  result := Format(GLIBSI_LBL,[GLIBSI_VERSION]);
  result := '1.0';
end;

function TAboutGProp.GetAttributes(): TPropertyAttributes;
begin
  result := [paDialog,paReadOnly];
end;

end.

Остается только «зарегистрировать» этот «Редактор свойств» для работы с вашим свойством About; Это важно для "ссылки" вашей собственности с вашего редактора .

Если у вас есть код для регистрации компонента, добавьте код для регистрации свойства:

  RegisterPropertyEditor(TypeInfo(TFAbout),nil,'',TAboutGProp);

Привет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...