Pregunta

Quiero agregar caja de caja / cuadro de diálogo en mi componente personalizado.¿Cómo hacer que el botón pequeño [...] aparezca en el inspector de objetos?Al igual que la asignación de una picura en el componente de vidrio.

¿Fue útil?

Solución

Debe definir una propiedad similar a esta:

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

tfabout es una clase, que define la forma que desea ver (sobre el formulario), cuando el usuario haga clic en la propiedad en "Inspector de objeto".

Además, debe registrar un "Editor de propiedades", si desea ver un Buuton con los tres puntos ... |en oi.

Esta es una unidad de muestra:

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.

Solo descanso para "Registrarse" este "Editor de propiedades" para trabajar con su propiedad sobre la propiedad;Esto es importante para "enlace" su propiedad con su editor .

Dónde tiene el código para registrar el componente, agregue el código para registrar la propiedad:

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

Saludos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top