点一下dbgrid的不痛记录
如何使相关的文本之类的控件的数据也发生变化啊 
有什么属性和方法可以用吗?

解决方案 »

  1.   

    使用TDBEdit,设置datasource和dbgrid一样
      

  2.   

    1\ 
    if ADOQuery1.Active then
     begin
        edit1.Text:=DBGrid1.SelectedField.AsString;
     end;
    2\使用数据感知控件
    DBEdit1
      

  3.   

    TDBEdit的DataSource对应一个表的数据源,FieldName对应一个字段
    其他什么都不用写了
      

  4.   

    procedure Tchangeuser.DBGrid1DblClick(Sender: TObject);
    begin
    if Query1.Active then
    begin
        edit1.Text:=DBGrid1.SelectedField.AsString;
         edit2.Text:=DBGrid1.SelectedField.AsString;
         DateTimePicker1.datetime:= DBGrid1.SelectedField.AsDateTime ;
    end;
    end;
    这样的话DateTimePicker1会报错
    而且edit1和edit2显示的内容一样了
      

  5.   

    也就是记录滚动嘛,在DBGrid对应的DataSet.AfterScroll事件中写代码控制:
     
    procedure TForm1.ADOQuery1AfterScroll(DataSet: TDataSet);
    begin
      Edit1.Text := DataSet.FieldByName('显示字段').AsString;
    end;
      

  6.   

    同楼上,AfterScroll事件中写代码;
      

  7.   

    在DBGrid的OnClick事件中写,将DBGrid一行的值分别赋给对应的控件。
      

  8.   

    AfterScroll是什么事件啊没用
      我用了
    procedure Tchangeuser.DBGrid1DblClick(Sender: TObject);
    begin
    if Query1.Active then
     begin
       edit1.Text:=query1.FieldByName('username').AsString;
        edit2.Text:=query1.FieldByName('id').AsString;
     DateTimePicker1.datetime:= query1.FieldByName('joindatetime').AsDateTime;
     end;
    end;
    这个事件可以了
       就是双击那个麻烦
    有别的事件可以用吗?
      

  9.   

    procedure TForm1.DataSource1DataChange(Sender: TObject; Field: TField);
    begin
    if Query1.Active then 
     begin 
       edit1.Text:=query1.FieldByName('username').AsString; 
        edit2.Text:=query1.FieldByName('id').AsString; 
     DateTimePicker1.datetime:= query1.FieldByName('joindatetime').AsDateTime; 
     end; end;
      

  10.   

    不像你看的懂不.我一般都是这样写的.很简洁
    procedure TfrmCz.dsDataDataChange(Sender: TObject; Field: TField);
    begin
         edtCkdm.Text:=orData.fieldByName('Storcode').AsString;
         edtKcSl.Text:=orData.fieldByName('Num').AsString;
         edtHwjg.Text:=orData.fieldByName('Price').AsString;
         edtHwdm.Text:=orData.fieldByName('Goodscode').AsString;
         dtplksj.Date:=orData.fieldByName('Indate').AsDateTime;
         edtczydm.Text:=orData.fieldByName('Empcode').AsString;
         edtCzy.Text:=orData.fieldByName('Storempname').AsString;
         edtHwmc.Text:=orData.fieldByName('Storgoodsname').AsString;end;