delphi dbgrid
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi dbgrid相关的知识,希望对你有一定的参考价值。
如何通过单击dbgrid某单元格获得该单元格的值
方法一: DBGridEh1.Fields[单击的单元格列-1].Value;方法二: DBGrid1.DataSource.DataSet.fieldbyname('单击的单元格所在列的数据库字段名').Value; 参考技术A 在DBGrid的oncellclick事件写代码:
procedure TForm1.DBGrid1CellClick(Column: TColumn);
begin
with ADOTable1 do
if Active then
begin
Edit1.Text := Fields[0].AsString;
Edit2.Text := Fields[1].AsString;
Edit3.Text := Fields[2].AsString;
end;
end; 参考技术B 你的DBGRID肯定需要与一个TABLE或QUERY之类的组件进行绑定哈,直接在DBGRID的单击事件中,获取TABLE或QUERY的当前字段值就可以 参考技术C DBGrid1.DataSource.DataSet.fieldbyname('单元格').Asstring;
delphi dbgrid 怎么才能只选中第一列
我现在需要dbgrid第一列的参数(学号),然后传到另一个form,怎么才能控制让用户只能选中第一列,这样防止参数传错
如果你的DBGRID里显示是用adoquery1来显示的,那么直接传adoquery1.fieldbyname('学号').asstring;
这个就是你在DBGRID里选中行的学号列的值,直接传这个就行了
如果你要只显示这一列的话,就
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select 学号 from 表名');
adoquery1.open; 参考技术A 其实选中哪个列都无所谓。你传递这个学号数据的时候,直接读取你的查询或者table中当前记录中的学号数据不就是了。因为你这个是 DBgrid。 参考技术B 加一个简单的if判断就可以了。
首先,用DBGrid1.SelectedField.FieldName取得选中区域的字段名;
其次,再用FDQuery1(或ADOQuery1).Field[0].FieldName取得第一列的字段名;
最后,判断两者是否相等,若相等则执行你所需的参数传递操作,否则不予相应。
如此一来便可实现仅能选择第一列参数,选择其他列无效的效果。
参考代码如下,可按具体需求调整。procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
if (DBGrid1.SelectedField.FieldName = FDQuery1.Fields[0].FieldName) then
begin
//相应的传递参数操作;
end;
end;
以上是关于delphi dbgrid的主要内容,如果未能解决你的问题,请参考以下文章