delphi dbgrid 怎么才能只选中第一列

我现在需要dbgrid第一列的参数(学号),然后传到另一个form,怎么才能控制让用户只能选中第一列,这样防止参数传错... 我现在需要dbgrid第一列的参数(学号),然后传到另一个form,怎么才能控制让用户只能选中第一列,这样防止参数传错 展开
 我来答
百度网友76d83eef1
2009-08-05 · 超过12用户采纳过TA的回答
知道答主
回答量:28
采纳率:0%
帮助的人:0
展开全部
如果你的DBGRID里显示是用adoquery1来显示的,那么直接传
adoquery1.fieldbyname('学号').asstring;
这个就是你在DBGRID里选中行的学号列的值,直接传这个就行了

如果你要只显示这一列的话,就
adoquery1.close;
adoquery1.sql.clear;
adoquery1.sql.add('select 学号 from 表名');
adoquery1.open;
zxw6720
2009-07-26 · 超过16用户采纳过TA的回答
知道答主
回答量:50
采纳率:0%
帮助的人:42.3万
展开全部
其实选中哪个列都无所谓。你传递这个学号数据的时候,直接读取你的查询或者table中当前记录中的学号数据不就是了。因为你这个是 DBgrid。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
摯愛阿Sam
2021-04-27 · TA获得超过240个赞
知道答主
回答量:133
采纳率:100%
帮助的人:20.6万
展开全部
加一个简单的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;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式