P
Prinse
Unregistered / Unconfirmed
GUEST, unregistred user!
我做了个控件,此控件在设计时需要在Object Inspector中通过属性关联其它控件。
所以我加了个指针域。但为了能在设计时访问这个域,我设计了相应的<b>published</b>属性,
当然只能是控件类型的了。但却不能成功。
我把属性改为<b>public</b>在运行时访问就没有问题,不知为什么?
请各位大虾指点指点。
type
PPanel = ^TPanel;
TmyPanel = class(TPanel)
private
FPnl: PPanel;
function GetPnl: TPanel;
procedure SetPnl(var Value: TPanel);
published
property Pnl: TPanel read GetPnl write SetPnl;
end;
implementation
//===========================================================================
//---------------------------------------------------------------------------
function TmyPanel.GetPnl: TPanel;
begin
if (FPnl<>nil) then result := FPnl^ else result := nil;
end;
//---------------------------------------------------------------------------
procedure TmyPanel.SetPnl(var Value: TPanel);
begin
FPnl := @Value;
end;
所以我加了个指针域。但为了能在设计时访问这个域,我设计了相应的<b>published</b>属性,
当然只能是控件类型的了。但却不能成功。
我把属性改为<b>public</b>在运行时访问就没有问题,不知为什么?
请各位大虾指点指点。
type
PPanel = ^TPanel;
TmyPanel = class(TPanel)
private
FPnl: PPanel;
function GetPnl: TPanel;
procedure SetPnl(var Value: TPanel);
published
property Pnl: TPanel read GetPnl write SetPnl;
end;
implementation
//===========================================================================
//---------------------------------------------------------------------------
function TmyPanel.GetPnl: TPanel;
begin
if (FPnl<>nil) then result := FPnl^ else result := nil;
end;
//---------------------------------------------------------------------------
procedure TmyPanel.SetPnl(var Value: TPanel);
begin
FPnl := @Value;
end;