偶是c#過來delphi的,請問下面的過程,錯在哪啊?為什麼不對啊?procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);
begin
    with DataM.q1 do
    begin
        sql.Clear;
        sql.Add(' '+str+' ');
        Open;
        comb1.DataSource:=DataM.q1;
        comb1.DataField:= val;
    end
end;

解决方案 »

  1.   

    procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);
    begin
    with DataM.q1 do
    begin
    close;//---------------------
    sql.Clear;
    sql.Add(' '+str+' ');
    Open;
    comb1.DataSource:=DataM.q1;
    comb1.DataField:= val;
    end
    end;
      

  2.   

    procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);
    //----函数参数名称[SQL]与查询组件的属性名称相同,要改一下。
    begin
    with DataM.q1 do
    begin
    sql.Clear;
    sql.Add(' '+str+' ');
    Open;
    comb1.DataSource:=DataM.q1;
    comb1.DataField:= val;
    end
    end;
      

  3.   

    樓上:還是不行啊,編譯時揭示我第一行錯誤,而已光標指到了第一行的最后一個分號哪里.why?
      

  4.   

    是错误信息帖出来看看。晕。
    你这样改一下试试,猜测。
    begin
      Application.Initialize;
      Application.CreateForm(TDataModule2, DataModule2);  //把创建DataM的放到前面试试呢
      Application.CreateForm(TForm1, Form1);
      Application.Run;
    end.
      

  5.   


    procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);
    //----函数参数名称[SQL]与查询组件的属性名称相同,要改一下。
    begin
    with DataM.q1 do
    begin
    sql.Clear;
    sql.Add(' '+str+' ');
    Open;
    comb1.DataSource:=DataM.q1;//---这儿只能是个DATASOURCE控件,不能直接是数据源控件的。//comb1.DataField:= val;//所指定的数据字段名称最好是用下面的这种型式:
    comb1.datasfield:=datasource.dataset.fields[x];//--x:所用字段在查询返回集中索引号
    end
    end;
      

  6.   

    comb1.datasfield:=datasource.dataset.fields[x].displayName;//--x:所用字段在查询返回集中索引号
      

  7.   

    procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);
    这句错了啊,参数里面最后那个分号是没有的
      

  8.   

    procedure ComBind(const Asql:string;const Aindex:integer;comb1:TDBComboBox;Asource:TdataSource);
    //----函数参数名称[SQL]与查询组件的属性名称相同,要改一下。
    begin
    with DataM.q1 do
    begin
    close;
    sql.Clear;
    sql.Add(' '+Asql+' ');
    Open;
    asource.dataset:=datam.q1;
    comb1.DataSource:=asource;//---这儿只能是个DATASOURCE控件,不能直接是数据源控件的。
    comb1.datasfield:=datasource.dataset.fields[AIndex].displayName;//--x:所用字段在查询返回集中索引号
    end
    end;
      

  9.   

    是不是:Identifier expected but ')'found
      

  10.   

    呵呵,原來大家都一樣是菜鳥啊,我找到原因了,公布如下://此函數可實現綁定TDBComboBox
    procedure ComBind(sql:string;comb1:TDBComboBox;val:string);//把val:string;去掉;號
    begin
        with DataM.q1 do
        begin
            sql.Clear;
            sql.Add(' '+str+' ');
            Open;
            DataM.ds1.DataSet:=DataM.q1;//增加這一句
            comb1.DataSource:=DataM.ds1;
            comb1.DataField:= val;
        end
    end;
      

  11.   

    本来procedure ComBind(sql:string;comb1:TDBComboBox;val:string;);就不应该有;分号的,只是大家可能大意了....我也菜鳥啊,刚看到已经解决了...