下面就是一个基本的继承TThread生成的多线程类,希望能给你帮助!
QuerThrd.Pas
unitQuerThrd;
  interface
  uses
  Classes,DBTables;
  type
    TQueryThreadΚclass(TThread)
    private
    fQuery:tQuery;
  protected
   procedure Execute;override;
  public
   constructor Create(Suspended:Boolean;Query:TQuery);
  end;  implementation  constructor
  TQueryThread.Create(Suspended:Boolean;Query:TQuery);
  begin
    inheritedCreate(Suspended);
    fQuery:ΚQuery;
    FreeOnTerminate:ΚTrue;
  end;
  procedureTQueryThread.Execute;
  begin
    fQuery.Open;
  end;
  end.
假设我们已经建立了一个窗体FORM1,窗体中有我们将要使用的查询控件Query1。那么我们在该单元的USES部分加入上面写的QuerThrd单元。
  procedureTForm1.Button1Click(Sender:TObject);
  begin
  {建立一个运行的进程}
    TQueryThread.Create(False,Query1);
  end;
  如果这个过程被执行,那么窗体中的查询控件Query1就会自动在多线程的环境下运行查询。

解决方案 »

  1.   

    哦,问题已经解决,是我在程序中写的有点问题,以至在线程中的代码跑到主线程中执行去了!但还有一个问题,就是启动线程后出现了SQL的那个沙漏光标,怎么给去掉,在什么地方去掉,或着干脆不让他出现???该沙漏光标在你移动光标到标题栏时消失,但不移动光标到标题栏,该光标在线程结束前不会消失。