Delphi7的DBGrid双击行事件怎么用

是这样的,在用DBGrid显示出所查询的数据后,现在想双击某一行后跳转到另一个窗口,然后该行的各属性的值自动填到新窗口的各个edit中,请问该如何实现。如果可以的话贴个源... 是这样的,在用DBGrid显示出所查询的数据后,现在想双击某一行后跳转到另一个窗口,然后该行的各属性的值自动填到新窗口的各个edit中,请问该如何实现。
如果可以的话贴个源代码行吗。。。。。。。虽然分少但是是我全部的分了,这个问题对我来说很重要。。。。。初学者恳求大家指点~~~
展开
 我来答
qecloud
2014-06-12
知道答主
回答量:7
采纳率:0%
帮助的人:8.7万
展开全部
假设新窗口单元名称为newfrm,窗体名称为newform,dbgrid中的数据与cds1关联,cds1中有name、password......列 先引用newfrm,在双击事件begin前添加 var newform1: Tnewform;
begin
newform1 := Tnewform.create(nil);
try
newform1.edtname.text := cds1.fieldbyname('name').asstring;
newform1.edtpassword.text := cds1.fieldbyname('password').asstring;
......
newform1.showmodal;
finally
newform1.free;
end;
end
0o小刀0o
2014-06-12 · TA获得超过152个赞
知道答主
回答量:266
采纳率:0%
帮助的人:161万
展开全部
首先,定义一个全局变量,然后在DBGrid双击函数中进行传参,最后在新窗口使用传递的参数进行查询,并将查询到的数据填入相应的edit中

我的例子是使用Oracle数据库,使用房号进行的查询
主窗口代码
var
RoomID:integer; //传递参数
//详细信息
procedure TMainForm.DBGrid3DblClick(Sender: TObject);
begin
if not Assigned(InfoForm) then
InfoForm:=TInfoForm.Create(self);
RoomID:=DM.OraQuery_Room.Fields[0].AsInteger; //DM是数据窗口
InfoForm.ShowModal;
end;
子窗口代码

//初始化
procedure TInfoForm.FormShow(Sender: TObject);
begin
with DM.OraQuery_Info do
begin
DM.OraQuery_Info.Close;
DM.OraQuery_Info.Active:=False;
DM.OraQuery_Info.SQL.Clear;
DM.OraQuery_Info.SQL.Add('select * from 表1 ');
DM.OraQuery_Info.SQL.Add(' where code='+quotedstr(inttostr(RoomID)));

DM.OraQuery_Info.Active:=True;
DM.OraQuery_Info.Open;
edit1.text:=DM.OraQuery_Info.Fields[0].AsString;
edit2.text:=inttostr(RoomID);

end;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式