カスタムコンポーネントにaboutbox/dialogboxを追加したい。小さなボタン[...]をオブジェクトインスペクターに表示するにはどうすればよいですか?Timageコンポーネントに画像を割り当てるのと同じです。
質問する
376 次
1 に答える
2
次のようなプロパティを定義する必要があります。
//: Información acerca del paquete de componentes
property AboutMe:TFAbout read FAboutG stored false;
TFAboutは、ユーザーが「オブジェクトインスペクター」のプロパティをクリックしたときに表示するフォーム(フォームについて)を定義するクラスです。
さらに、3点のブットンを見たい場合は、「プロパティエディタ」を登録する必要があります| ... | OIで。
これはサンプルユニットです:
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.
この「プロパティエディタ」を「登録」して、Aboutプロパティを操作するだけです。これは、プロパティをエディタに「リンク」するために重要です。
コンポーネントを登録するためのコードがある場合は、プロパティを登録するためのコードを追加します。
RegisterPropertyEditor(TypeInfo(TFAbout),nil,'',TAboutGProp);
よろしく
于 2010-07-19T09:13:35.713 に答える