在DBGRID中有2条记录就操作正常,一条记录就不正常点击无法相应。
DblClick事件里怎么取得双击的记录值?
谢谢!

解决方案 »

  1.   

    procedure TFBCL.DBGrid3CellClick(Column: TColumn);
    var
      dd: TDateTime;
      jlrq0: string;
    begin
      dd:= dbgrid3.Fields[0].Value;
      jlrq0:= FormatDateTime('yyyy-mm-dd',dd);
      with dmData.adoQryBLJL do
      begin
        Active:= false;
        sql.Clear;
        sql.Add('select * from YL_BLJL where (ZYH= :zyh0) and (JLRQ= :jlrq0)');
        parameters.ParamByName('zyh0').Value:= zyh0;
        parameters.ParamByName('jlrq0').Value:= jlrq0;
        active:= true;
      end;
      with dmData.adoQryBLJL do
      begin
        Active:= false;
        sql.Clear;
        sql.Add('select * from YL_BLJL where (ZYH= :zyh0) and (JLRQ= :jlrq0)');
        parameters.ParamByName('zyh0').Value:= zyh0;
        parameters.ParamByName('jlrq0').Value:= jlrq0;
        active:= true;
        RedtBLXX.Text:= FieldByName('BLXX').Value;
      end;
    end;
    // 帮我看看到底那里除错了。谢谢。
      

  2.   

    procedure TFBCL.DBGrid3CellClick(Column: TColumn);
    var
      dd: TDateTime;
      jlrq0: string;
    begin
      dd:= dbgrid3.Fields[0].Value;
      jlrq0:= FormatDateTime('yyyy-mm-dd',dd);
      with dmData.adoQryBLJL do
      begin
        Active:= false;
        sql.Clear;
        sql.Add('select * from YL_BLJL where (ZYH= :zyh0) and (JLRQ= :jlrq0)');
        parameters.ParamByName('zyh0').Value:= zyh0;
        parameters.ParamByName('jlrq0').Value:= jlrq0;
        active:= true;
      end;
        RedtBLXX.Text:= FieldByName('BLXX').Value;
      end;
    end;
    刚才粘过来代码重复了,是的,我是点击后从别的表查询数据。
      

  3.   

    dd:= dbgrid3.Fields[0].Value;
    showMessage(DateTimeToStr(dd)); //测试下正常取到数值吗??
    parameters.ParamByName('jlrq0').Value:= jlrq0;
    showMessage(SQL.Text); //测试下
        active:= true;
      

  4.   

    dd:= dbgrid3.Fields[0].Value;
    showMessage(DateTimeToStr(dd)); //测试下正常取到数值吗??
    这个程序打开时,直接点击第一个值是取不到值的,但是点了第二个就对,然后再去点第一个,也对了。什么原因?
      

  5.   

    也就是说,这个默认的第一条数据他不执行这个CELLCLICK事件的。 有什么办法可以解决?
      

  6.   

    个人认为 不是不执行 而是DBGRID中当显示数据的时候 你点第一条的话等于双击了第一条记录 进入了修改的状态 你可以把OPTIONS里面的第一个EDIT的设为FALSE尝试一下
      

  7.   

    guxing_83(泥巴上的草) 你的答案是对的。谢谢。