como adicionar TAboutBox em TCustomControls?
-
17-09-2020 - |
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.
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