function GetDBGridInputEdit(mDBGrid: TDBGrid): TCustomEdit;
var
  I: Integer;
begin
  Result := nil;
  with mDBGrid do for I := 0 to Pred(ComponentCount) do
    if Components[I] is TCustomEdit then
    begin
      Result := TCustomEdit(Components[I]);
      Break;
    end;
end;

解决方案 »

  1.   

    procedure TForm1.Button1Click(Sender: TObject);
    var fname:string;//field name
        value:variant;//you want get value
    begin
      table1.First;             //items[DBGrid1.SelectedIndex]也可  
      fname:=DBgrid1.Columns.Items[strtoint(edit1.text)].FieldName;
      table1.MoveBy(strtoint(edit2.text));//如果你想通过mouse指定,此句delete.
      value:=table1.fieldbyname(fname).value;
      showmessage(vartostr(value));
    end;
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var fname:string;//field name
        value:variant;//you want get value
    begin
      table1.First;            
      fname:=DBgrid1.Columns.Items[DBGrid1.SelectedIndex].FieldName; 
      value:=table1.fieldbyname(fname).value;
      showmessage(vartostr(value));
    end;
      

  3.   

    上面的错了。应该把第一句去之
    procedure TForm1.Button1Click(Sender: TObject);
    var fname:string;//field name
        value:variant;//you want get value
    begin
      //table1.First;            
      fname:=DBgrid1.Columns.Items[DBGrid1.SelectedIndex].FieldName; 
      value:=table1.fieldbyname(fname).value;
      showmessage(vartostr(value));
    end;