Pergunta

Quero adicionar aboutbox/dialogbox no meu componente personalizado.como fazer o botão pequeno[...] aparecer no inspetor de objetos?assim como atribuir uma imagem no componente Timage.

Foi útil?

Solução

Você deve definir uma propriedade semelhante a esta:

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

TFSobre é uma classe, que define o formulário que você deseja ver (Sobre o formulário), quando o usuário clicar na propriedade no "Object Inspector".

Além disso, você deve registrar um "editor de propriedades", se quiser ver um Buuton com os três pontos | ... | em oi.

Esta é uma unidade de amostra:

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.

Resta apenas "registrar" este "Editor de propriedades" para trabalhar com sua propriedade Sobre;Isso é importante para "link" sua propriedade com seu editor.

Onde tiver o código para cadastrar o componente, adicione o código para cadastrar a propriedade:

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

Cumprimentos

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top