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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top