我有个TQuery的对象, 在别的地方已经初始化好,有了查询结果了.    现在我想这么样用, 不知道delphi中这样可以不.1 在别的地方已经初始化好,有了查询结果了
qry1 := TQuery.Create(nil);
qry1.sql.add('select * from test');
qry1.open.2 我有这么一个类, 增加两个属性.
  TQueryExt = class
  private
    FQry: TQuery;
    FTimeout:integer; 
  public
    construction Create(aQry:TQuery, aTdateTime:TdateTime);
    destruction Destroy; override;
    procedure add(...);
    procedure get(...);
  end;construction TQueryExt.Create(aQry:TQuery, aTdateTime:TdateTime);
begin
   FQry := aQry;[/color]
  FTimeout:= aTdateTime;
end;我用的地方
qryext := TQueryExt.Create([color=#FF0000]qry1
,Now);  我这里可以直接这么样写吗.  DELPHI指针在这里应该怎么写啊.

解决方案 »

  1.   

    可以这样写, 其实你测试一下就知道了.最好用 Assign 之类的语句. 你看一下自带的控件源码就知道怎么做了.不过还是建议这个类自生成, 即这个成员由类自已生成.
      

  2.   

    可以...delphi的指针是很灵活的,只不过很多人用了很多次指针后 
    还不知道自己用了指针,delphi包装的好, 
    其它你用的对象、过程等都是指针。
    http://blog.sina.com.cn/s/blog_59cb8a930100bwyt.html
      

  3.   

    可以,这样传递的就是一个指向qry1的指针,传递后FQry 和qry1是同步的
      

  4.   

    FQry是一个变量,可以随便指向一个TQuery的对象
      

  5.   

    可以
    不过你这样写你的类对象应该要保持完整性
    所以最好还是Assign 
    这样你外边的free了你也不会报地址错
      

  6.   

    这样写语法上没有错,只要你牢记Delphi的对象变量本质就是指针TQueryExt.Create(qry1,Now);传递进去的只是一个指针,所以最好不要在TQueryExt里面执行FQry.Free这类的语句,还有你注意这你这样就类似使用了全局变量,要小心在TQueryExt里面更改了FQry有可能对其它模块造成影响。
      

  7.   

    對象的實例qry1本來就是指針,你傳進去的就是指針了,傳進去后FQry和qry1就是相同的了