D
DELPHI.X
Unregistered / Unconfirmed
GUEST, unregistred user!
TThreadQuery = class(TThread) { 声明线程类 }
private
FQuery: TQuery;
{ 线程中的查询组件 }
FDataSource: TDataSource;
{ 与查询组件相关的数据感知组件 }
procedure ConnectDataSource;{ 连接数据查询组件和数据感知组件的方法 }
protected
procedure Execute;
override;{ 执行线程的方法 }
public
constructor Create(Query: TQuery;
DataSource: TDataSource);
virtual;
{ 线程构造器 }
end;
var
Form1: TForm1;
Q1, { 线程查询对象1 }
Q2: TThreadQuery;
{ 线程查询对象2 }
implementation
{$R *.DFM}
{ TThreadQuery类的实现 }
{ 连接数据查询组件和数据感知组件}
procedure TThreadQuery.ConnectDataSource;
begin
FDataSource.DataSet := FQuery;{ 该方法在查询结束后才调用 }
end;
procedure TThreadQuery.Execute;{ 执行线程的方法 }
begin
try
FQuery.Open;
{ 打开查询 }
Synchronize(ConnectDataSource);{ 线程同步 }
except
ShowMessage('Query Error');
{ 线程异常 }
end;
end;
{ 线程查询类的构造器 }
constructor TThreadQuery.Create(Query: TQuery;
DataSource: TDataSource);
begin
FQuery := Query;
FDataSource := DataSource;
inherited Create(True);
FreeOnTerminate := False;
end;
Q1 := TThreadQuery.Create(Query1, DataSource1);后
Execure过程不自动执行是怎么回事?
private
FQuery: TQuery;
{ 线程中的查询组件 }
FDataSource: TDataSource;
{ 与查询组件相关的数据感知组件 }
procedure ConnectDataSource;{ 连接数据查询组件和数据感知组件的方法 }
protected
procedure Execute;
override;{ 执行线程的方法 }
public
constructor Create(Query: TQuery;
DataSource: TDataSource);
virtual;
{ 线程构造器 }
end;
var
Form1: TForm1;
Q1, { 线程查询对象1 }
Q2: TThreadQuery;
{ 线程查询对象2 }
implementation
{$R *.DFM}
{ TThreadQuery类的实现 }
{ 连接数据查询组件和数据感知组件}
procedure TThreadQuery.ConnectDataSource;
begin
FDataSource.DataSet := FQuery;{ 该方法在查询结束后才调用 }
end;
procedure TThreadQuery.Execute;{ 执行线程的方法 }
begin
try
FQuery.Open;
{ 打开查询 }
Synchronize(ConnectDataSource);{ 线程同步 }
except
ShowMessage('Query Error');
{ 线程异常 }
end;
end;
{ 线程查询类的构造器 }
constructor TThreadQuery.Create(Query: TQuery;
DataSource: TDataSource);
begin
FQuery := Query;
FDataSource := DataSource;
inherited Create(True);
FreeOnTerminate := False;
end;
Q1 := TThreadQuery.Create(Query1, DataSource1);后
Execure过程不自动执行是怎么回事?