TGridThread = class(TThread)
private
{ Private declarations }
Fcon: TADOConnection;
Fqry: TADOQuery;
FGrid : TDBGridEh;
Fdomain_id: string;
Fuser_id: string;
FotherValue: Integer;
protected
procedure qryOpen; virtual; abstract;
procedure Execute; override;
procedure SetLink;
procedure openConnection;
public
constructor create(Suspended: Boolean; Aqry: TADOQuery; AGrid : TDBGridEh;
Adomain_id, Auser_id: string; AotherValue: Integer = 0);
destructor Destroy;
end; TqryNoClient = class(TGridThread)
protected
procedure qryOpen; override;
end;implementationconstructor TGridThread.create(Suspended: Boolean; Aqry: TADOQuery; AGrid : TDBGridEh;
Adomain_id, Auser_id: string; AotherValue: Integer = 0);
begin
Fdomain_id := Adomain_id;
Fuser_id := Auser_id;
FotherValue := AotherValue;
//Fqry:= TADOQuery.Create(nil);
Fqry := Aqry;
FGrid := AGrid;
openConnection;
Fqry.Connection := Fcon;
//Fqry.ConnectionString := sconStr;
inherited create(Suspended);
end;
procedure TqryNoClient.qryOpen; //子类访问了父类的私有变量 Fqry、Fuser_id、Fdomain_id
begin
try
TUserOperator.getDataset(Fqry, 'sp_report_push_cilent_not_follow', Fuser_id, Fdomain_id);
finally
Synchronize(SetLink);
end;
end; 编译、运行都正常!!!!! 是BUG吗????还是...
private
{ Private declarations }
Fcon: TADOConnection;
Fqry: TADOQuery;
FGrid : TDBGridEh;
Fdomain_id: string;
Fuser_id: string;
FotherValue: Integer;
protected
procedure qryOpen; virtual; abstract;
procedure Execute; override;
procedure SetLink;
procedure openConnection;
public
constructor create(Suspended: Boolean; Aqry: TADOQuery; AGrid : TDBGridEh;
Adomain_id, Auser_id: string; AotherValue: Integer = 0);
destructor Destroy;
end; TqryNoClient = class(TGridThread)
protected
procedure qryOpen; override;
end;implementationconstructor TGridThread.create(Suspended: Boolean; Aqry: TADOQuery; AGrid : TDBGridEh;
Adomain_id, Auser_id: string; AotherValue: Integer = 0);
begin
Fdomain_id := Adomain_id;
Fuser_id := Auser_id;
FotherValue := AotherValue;
//Fqry:= TADOQuery.Create(nil);
Fqry := Aqry;
FGrid := AGrid;
openConnection;
Fqry.Connection := Fcon;
//Fqry.ConnectionString := sconStr;
inherited create(Suspended);
end;
procedure TqryNoClient.qryOpen; //子类访问了父类的私有变量 Fqry、Fuser_id、Fdomain_id
begin
try
TUserOperator.getDataset(Fqry, 'sp_report_push_cilent_not_follow', Fuser_id, Fdomain_id);
finally
Synchronize(SetLink);
end;
end; 编译、运行都正常!!!!! 是BUG吗????还是...
因为在Delphi2007及之后,增加了strict关键字,比如strict private,那样就无法访问了。