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吗????还是...