我定义了一个线程类:
LyThread = class(TThread)
  private
    { Private declarations }  protected
    ThreadEdit:TEdit;//问题
    
    procedure Execute; override;
    
    public
       constructor Create(Query: TQuery);  end;
我想在这个线程类里面实例化ThreadEdit,但不知道如何做,请教各位大虾!谢谢!
我在Create里用:ThreadEdit:=TEdit.create(self);会出错。说Tcomponent和LyThread不匹配。

解决方案 »

  1.   

    你没有理解这个Self的真正含义。
    在这里你要么写 
    ThreadEdit:=TEdit.create(Application);
    要么写
    ThreadEdit:=TEdit.create(nil);你写上Self 等效于 
    ThreadEdit:=TEdit.create(LyThread的实例);这与TEdit.Create的原型自然不符合了
      

  2.   

    ThreadEdit:=TEdit.create(nil);  //
      

  3.   

    to:pazee
    用你的方法搞定了,谢谢!!!
    我创建了:Threa_Database:=TDatabase.Create(nil);
    但Threa_Database.DatabaseName的这个属性却使用不了,奇怪。请教!谢谢!Threa_Database.Connected:=false;
    Threa_Database.AliasName:=Ary[0];
    Threa_Database.DatabaseName:='Ivr_Mode';//这一步出错。
    Threa_Database.LoginPrompt:=false;
      

  4.   

    我没办法调试你的程序,但是给你一个提议,如果你是多线程使用BDE操作数据库,你需要显式的为每个线程的连接声明唯一的Session.具体你看帮助
      

  5.   

    当我用:Threa_TSession:=TSession.Create(nil);创建后Threa_TSession的属性是否都是默认值呢?
    我引用Threa_TSession.name属性,它却是一个空值!想请教各位!谢谢!
      

  6.   

    在多线程数据库查询里,TSession的Active要设为true吗?
    我在线程类里面定义了一个TSession,实例化后,设它的active:=true;总会出错,为什么呀?
      

  7.   

    to:pazee
    如何“显式”的为每个线程的连接声明唯一的Session.?我现在在线程里面按上面的方法创建TSession但用不了,很急!盼回复!十分感谢!!!