请问在同一个界面上有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;
用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’字段的值。
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;
edit.text:=dataset.filedbyname('fieldname').asstring;
Edit1.Text:=edit1.DBgrid1.Fields[i].AsString