各位高手:本人要完成如下功能,该如何操作???
鼠标单击dbgrid的一条记录后,提取出来这条记录的各个字段的内容,dbgrid的数据源是query,而且query是提取的两个表的数据。该如何做请高手指点

解决方案 »

  1.   

    直接使用 QUERY.的数据就可以实现string:=query.fieldvalues['name'];
      

  2.   

    但是,我不只要这些啊,我要通过单击dbgrid的功能
      

  3.   

    procedure TForm1.DBGrid1DblClick(Sender: TObject);
    var
      dt : TDataSet;
      i  : integer;
    begin
      dt := dbgrid1.DataSource.DataSet;
      for i := 0 to dt.FieldCount - 1 do
      begin
        case dt.Fields.Fields[i].DataType of
          ftInteger : showmessage(dt.Fields.Fields[i].AsString);
          ...
        end;
      end;
    end;
      

  4.   

    for i:=0 to DBGrid1.DataSource.DataSet.FieldCount - 1 do
    begin
      s := s + DBGrid1.DataSource.DataSet.Fields[i].FieldName + ':' +DBGrid1.DataSource.DataSet.Fields[i].Value;
      ShowMessage(s);
    end;
      

  5.   

    我想要的是当我单击dbgrid的一条数据的时候
    我能把这条记录的每一个字段的值都分别赋值给不同的变量
      

  6.   

    DBGrid的單擊事件:
    for i:=0 to DBGrid1.DataSource.DataSet.FieldCount - 1 do
    begin
      S[i] := DBGrid1.DataSource.DataSet.Fields[i].asstring;
    end;
    你可以定義一個記錄型變量寫進去.(字段數應該已知吧)