L
littlefat
Unregistered / Unconfirmed
GUEST, unregistred user!
我因为自己的需要编写了一个自定义的控件,从dxDBGrid(DevExpress公司的著名Grid控件)继承,其中封装了一个控件内部使用的DataSource和ADOStoredProc,并且在控件的Create中已经设定了ADOStoredProc->DataSource->dxDBGrid的数据连接关系,所以dxDBGrid的DataSource属性应该屏蔽掉(不出现在设计时期的Object Inspector中),但我不知道如何才能屏蔽!
部分代码如下(略去了不相干的函数和过程):
type
TListMode=(lmtop,lmQuickSearch,lmQuery,lmAll); //列出模式
TEndxDBGrid = class(TdxDBGrid)//从dxDBGrid继承
private
{ Private declarations }
FADOSP:TADOStoredProc;
FDataSource:TDataSource;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent);override;
destructor Destroy;override;
published
{ Published declarations }
property ADOStoredProc:TADOStoredProc read FADOSP; //发布ADOStoedProc成一个属性
end;
procedure Register;
implementation
{ TEndxDBGrid }
constructor TEndxDBGrid.Create(AOwner: TComponent);
begin
inherited;
FDataSource:=TDataSource.Create(nil);//创建控件内部使用的DataSource
FADOSP:=TADOStoredProc.Create(Self); //创建控件内部使用的ADOStoreProc
FADOSP.Name:=Self.Name+'ADOSP'; //ADOStoedProc的名字
FDataSource.DataSet:=FADOSP; //建立连接关系
Self.DataSource:=FDataSource;
FInited:=False;
end;
destructor TEndxDBGrid.Destroy;
begin
FADOSP.Close;
FADOSP.Free;
FDataSource.Free;
inherited;
end;
部分代码如下(略去了不相干的函数和过程):
type
TListMode=(lmtop,lmQuickSearch,lmQuery,lmAll); //列出模式
TEndxDBGrid = class(TdxDBGrid)//从dxDBGrid继承
private
{ Private declarations }
FADOSP:TADOStoredProc;
FDataSource:TDataSource;
protected
{ Protected declarations }
public
{ Public declarations }
constructor Create(AOwner: TComponent);override;
destructor Destroy;override;
published
{ Published declarations }
property ADOStoredProc:TADOStoredProc read FADOSP; //发布ADOStoedProc成一个属性
end;
procedure Register;
implementation
{ TEndxDBGrid }
constructor TEndxDBGrid.Create(AOwner: TComponent);
begin
inherited;
FDataSource:=TDataSource.Create(nil);//创建控件内部使用的DataSource
FADOSP:=TADOStoredProc.Create(Self); //创建控件内部使用的ADOStoreProc
FADOSP.Name:=Self.Name+'ADOSP'; //ADOStoedProc的名字
FDataSource.DataSet:=FADOSP; //建立连接关系
Self.DataSource:=FDataSource;
FInited:=False;
end;
destructor TEndxDBGrid.Destroy;
begin
FADOSP.Close;
FADOSP.Free;
FDataSource.Free;
inherited;
end;