¿Cómo agregar tabutbox en tcustomcontrols?
-
17-09-2020 - |
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.
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