TEdit 和 TQuery
TEdit and TQuery
我有 class:
TcvDbedit = class(TCustomMaskEdit)
...
private
...
fQuery: TQuery;
...
protected
...
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
...
published
...
property DataQuery: TQuery read fQuery write fQuery;
...
通过这种方式,我将 TQuery 作为 属性 获取,并且我可以更改 属性 查询。我需要别的东西来更改 tQuery 的属性并将它们保存在 dfm 中。我不希望 TQuery 在表单上可见。实际上我使用 TFDQuery。我怎样才能做到这一点?
也许您需要 SetSubComponent。
不要将您的 fQuery 公开为 TcvDbEdit 的 public 成员,而是公开您需要的属性 -
interface
TcvDbedit = class(TCustomMaskEdit)
private
fQuery: TQuery;
procedure SetSQL(AValue : String);
function GetSQL;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property SQL : TStrings read GetSQL write SetSQL;
end;
implementation
constructor TcvDbedit.Create(AOwner : TComponent);
begin
fQuery = TQuery.Create(self);
end
destructor TcvDbedit.Destroy;
begin
fQuery.Free;
end;
procedure TcvDbedit.SetValue(AValue : String);
begin
fQuery.SQL.Assign(AValue);
end;
function TcvDbedit.GetSQL : TStrings;
begin
return fQuery.SQL;
end;
我有 class:
TcvDbedit = class(TCustomMaskEdit)
...
private
...
fQuery: TQuery;
...
protected
...
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
...
published
...
property DataQuery: TQuery read fQuery write fQuery;
...
通过这种方式,我将 TQuery 作为 属性 获取,并且我可以更改 属性 查询。我需要别的东西来更改 tQuery 的属性并将它们保存在 dfm 中。我不希望 TQuery 在表单上可见。实际上我使用 TFDQuery。我怎样才能做到这一点?
也许您需要 SetSubComponent。
不要将您的 fQuery 公开为 TcvDbEdit 的 public 成员,而是公开您需要的属性 -
interface
TcvDbedit = class(TCustomMaskEdit)
private
fQuery: TQuery;
procedure SetSQL(AValue : String);
function GetSQL;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
published
property SQL : TStrings read GetSQL write SetSQL;
end;
implementation
constructor TcvDbedit.Create(AOwner : TComponent);
begin
fQuery = TQuery.Create(self);
end
destructor TcvDbedit.Destroy;
begin
fQuery.Free;
end;
procedure TcvDbedit.SetValue(AValue : String);
begin
fQuery.SQL.Assign(AValue);
end;
function TcvDbedit.GetSQL : TStrings;
begin
return fQuery.SQL;
end;