Come aggiungere Taboutbox in TCustomControls?
-
17-09-2020 - |
Domanda
Voglio aggiungere la casella della finestra / finestra di dialogo sul mio componente personalizzato.Come rendere il pulsante piccolo [...] visualizzato nell'ispettore dell'oggetto?Proprio come l'assegnazione di un Picure sul componente Timage.
Soluzione
È necessario definire una proprietà simile a questo:
//: Información acerca del paquete de componentes
property AboutMe:TFAbout read FAboutG stored false;
.
TFabout è una classe, che definisce il modulo che si desidera visualizzare (sul modulo), quando l'utente fai clic sulla proprietà in "Inspector oggetti".
Inoltre, è necessario registrare un "editor di proprietà", se vuoi vedere un buuton con i tre punti | ... |in oi.
Questa è un'unità di esempio:
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 riposa a "registrare" questo "editor di proprietà" per il lavoro con la propria proprietà;Questo è importante per "link" La tua proprietà con Your Editor .
Dove hai il codice per registrare il componente, aggiungi il codice per registrare la proprietà:
RegisterPropertyEditor(TypeInfo(TFAbout),nil,'',TAboutGProp);
.
Saluti