Comment ajouter taboutbox dans tcustomcontrols?
-
17-09-2020 - |
Question
Je veux ajouter une boîte de boîte / boîte de dialogue sur mon composant personnalisé.Comment rendre le petit bouton [...] apparaître sur l'inspecteur d'objets?Tout comme l'affectation d'un picure sur la composante timane.
La solution
Vous devez définir une propriété similaire à celle-ci:
//: Información acerca del paquete de componentes
property AboutMe:TFAbout read FAboutG stored false;
tfabout est une classe, qui définit la forme que vous souhaitez voir (sur la forme), lorsque l'utilisateur cliquer sur la propriété dans "Inspecteur d'objet".
En outre, vous devez enregistrer un "éditeur de propriétés", si vous voulez voir un butuon avec les trois points | ... |en oi.
Ceci est une unité d'échantillonnage:
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.
ne repose que pour "enregistrer" cet "éditeur de propriétés" pour travailler avec votre propriété.Ceci est important pour "lien" votre propriété avec
où vous avez le code pour enregistrer le composant, ajoutez le code de l'enregistrement de la propriété:
RegisterPropertyEditor(TypeInfo(TFAbout),nil,'',TAboutGProp);
Cordialement