下面的代碼聲明了Pen和Brush的對象域
type
TSampleShape=class(TGraphicControl)
private
FPen: TPen;
FBrush: TBrush;
end;
⑵ 聲明訪問屬性
可以通過聲明與Owned對象相同類型的屬性來提供對Owned對象的訪問能力
下面給Shape控制提供了訪問Pen和Brush的方法
type
TSampleShape=class(TGraphicControl)
private
procedure SetBrush(Value: TBrush)
procedure SetPen(Value: TPen)
published
property Brush: TBrush read FBrush write SetBrush;
property Pen: TPen read FPen write SetPen;
end;
然後在庫單元的implementation部分寫SetBrush和SetPen方法
procedure TSampleShape
begin
FBrush
end;
procedure TSampleShape
begin
FPen
end;
⑶ 初始化Owned對象
部件中增加了的新對象
因為Shape控制中加入了Pen和Brush對象
① 在Shape控制的constructor中創建Pen和Brush
constructor TSampleShape
begin
inherited Create(AOwner)
Width :=
Height :=
FPen := TPen
FBrush := TBrush
end;
② 在部件對象的聲明中覆蓋destructor
type
TSampleShape=class(TGraphicControl)
public
construstor
destructor
end;
③ 在庫單元中的實現部分編寫新的destructor
destructor TSampleShape
begin
FPen
FBrush
inherited destroy;
end;
④ 設置Owned對象的屬性
處理Pen和Brush對象的最後一步是處理Pen和Brush發生改變時對Shape控制的重畫問題
[
From:http://tw.wingwit.com/Article/program/Delphi/201311/25111.html