要使结构化类型可流化并在设计器中设置,该类型必须从
TPersistent
:
type
TGage = class(TPersistent)
public
MaxValue: Real;
Color1: TColor;
Color2: TColor;
procedure Assign(Source: TPersistent); override;
end;
TGasTurbine = class(TPanel)
private
FGage: TGage;
procedure SetGage(Value: TGage);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property Gage: TGage read FGage write SetGage;
end;
procedure TGage.Assign(Source: TPersistent);
begin
if Source is TGage then
begin
MaxValue := TGage(Source).MaxValue;
Color1 := TGage(Source).Color1;
Color2 := TGage(Source).Color2;
end
else
inherited Assign(Source);
end;
constructor TGasTurbine.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
FGage := TGage.Create;
end;
destructor TGasTurbine.Destroy;
begin
FGage.Free;
inherited Destroy;
end;
procedure TGasTurbine.SetGage(Value: TGage);
begin
FGage.Assign(Value);
end;