请问在同一个界面上有TDBGrid,Edit 控件.怎样在选择了TDBGrid控件里面的一行记录时也在Edit中显示?
edit中是显示TDBGrid中一列
可以用SQL语句查询并赋植给Edit,具体怎么做?

解决方案 »

  1.   

      不需要写SQL也可以,比如说,有一个数据表,他的两个字段为Name,ID。表名为Table1。
      用Query和Table组件都可以。用Query的话,就SQL属性里写上 Select * from Table1。Table的话,就把TableName属性设置为Table1。 用一个DateSourse组件链接到数据集组件(就是Query或Table)
      DBgrid和DBEdit的DataSource熟练链接到Datesource组件。他们就自动显示数据集组件中的数据了。DBEdit组件需要设置一个DataField属性来确定显示哪个字段,之后DbEdit就会自动显示数据集当前记录的该字段的值了。
       
       如果是使用的普通Edit组件,在Query的Dbclick事件里面写
      
       Edit1.text:=Table1.FieldByName('UseName').asstring;
     
       OK了,双击DBGrid中的列的时候,就会显示‘UseName’字段的值。
      

  2.   

    用DBEDIT嘛,用DataSoruse连接到Query或Table上
      

  3.   

    Query里没有Dbclick事件吧,应该在dbgrid的dbclick事件里写。
      

  4.   

    请问在同一个界面上有TDBGrid,Edit   控件.怎样在选择了TDBGrid控件里面的一行记录时也在Edit中显示? 
    edit中是显示TDBGrid中一列 
    可以用SQL语句查询并赋植给Edit,具体怎么做?
    1:
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    var
      i: integer;
    begin
       Showmessage(inttostr(DBgrid1.Columns.Count ));
       for i:=0 to  DBgrid1.Columns.Count-1  do
         Begin
           Edit1.Text :=edit1.Text+DBgrid1.Fields[i].AsString
         End;
    end;
    2:
    procedure TForm1.DBGrid1CellClick(Column: TColumn);
    begin 
    ***
    SQl.text:='SElect * from table where column='''+Adoquery1.fieldbyname('***').Asstring+''''; 
    *****
    end;
      

  5.   

    或在DBGrid.datasourc.dataset.afterscroll事件中写
    edit.text:=dataset.filedbyname('fieldname').asstring;
      

  6.   

    直接在onCellClick事件中加入代码就可以了
    Edit1.Text:=edit1.DBgrid1.Fields[i].AsString