unit Unit1;interfaceuses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, DB, ADODB;type
  TForm1 = class(TForm)
    ADOQuery1: TADOQuery;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    procedure QueryUnit(Qname: TAdoquery; Qpara: string);
    { Private declarations }
  public
    { Public declarations }
  end;var
  Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
begin
   QueryUnit(ADOQuery1,'dfdsf');
end;procedure TForm1.QueryUnit(Qname:TAdoquery;Qpara:string);
begin
  with Qname do
    begin
        //代码
    end; 
end;
end.

解决方案 »

  1.   

    with Qname do  //不要Datamodule1.
        begin
            //代码
        end;
      

  2.   

    应该这样吧
    procedure QueryUnit(Qname:TAdoquery;Qpara:string);
    begin
      with Qname do
        begin
            //代码
        end; 
    end
      

  3.   

    可以把这个过程移到Datamodule1中,就可以不能前缀Datamodule1
    ================================================================CSDN 论坛助手 Ver 1.0 B0402提供下载。 改进了很多,功能完备!★  浏览帖子速度极快![建议系统使用ie5.5以上]。 ★  多种帖子实现界面。 
    ★  保存帖子到本地[html格式]★  监视您关注帖子的回复更新。
    ★  可以直接发贴、回复帖子★  采用XML接口,可以一次性显示4页帖子,同时支持自定义每次显示帖子数量。可以浏览历史记录! 
    ★  支持在线检测程序升级情况,可及时获得程序更新的信息。★★ 签名  ●  
         可以在您的每个帖子的后面自动加上一个自己设计的签名哟。Http://www.ChinaOK.net/csdn/csdn.zip
    Http://www.ChinaOK.net/csdn/csdn.rar
    Http://www.ChinaOK.net/csdn/csdn.exe    [自解压]
      

  4.   

    不错,把这个
    procedure QueryUnit(Qname:TAdoquery;Qpara:string);
    Qname为某一ADOquery,如adoquery1procedure QueryUnit(Qname:TAdoquery;Qpara:string);
    begin
      with Datamodule1.Qname do
        begin
            //代码
        end; 
    end;
    放到数据模块也可以
      

  5.   

    procedure QueryUnit(Qname:TAdoquery;Qpara:string);
    begin
      with Qname do  //去掉Datamodule1
        begin
            //代码
        end; 
    end;调用时
    QueryUnit(Datamodule1.Qname,Qpara);