Delphi7的DBGrid双击行事件怎么用
是这样的,在用DBGrid显示出所查询的数据后,现在想双击某一行后跳转到另一个窗口,然后该行的各属性的值自动填到新窗口的各个edit中,请问该如何实现。如果可以的话贴个源...
是这样的,在用DBGrid显示出所查询的数据后,现在想双击某一行后跳转到另一个窗口,然后该行的各属性的值自动填到新窗口的各个edit中,请问该如何实现。
如果可以的话贴个源代码行吗。。。。。。。虽然分少但是是我全部的分了,这个问题对我来说很重要。。。。。初学者恳求大家指点~~~ 展开
如果可以的话贴个源代码行吗。。。。。。。虽然分少但是是我全部的分了,这个问题对我来说很重要。。。。。初学者恳求大家指点~~~ 展开
2个回答
展开全部
假设新窗口单元名称为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
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
展开全部
首先,定义一个全局变量,然后在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;
我的例子是使用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;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询