假定dbgrid1是从adoquery1获取得到的数据。procedure Tform1.dbgrid1click(Sender: TObject); begin if datamodule1.adoquery1.RecordCount>0 then //若当前有数据,可进行操作 begin form1edit.ShowModal; //显示新的窗体form1edit end; end;在form1edit的oncreate事件中,代码如下:procedure TForm1edit.FormCreate(Sender: TObject); begin edit1.text:=datamodule1.adoquery1.fieldbyname('字段').AsString; edit2.text:=datamodule1.adoquery1.fieldbyname('字段').asstring; .... end; 能够如上使用是因为dbgrid中进行数据上下浏览时候,sql数据指针在数据集中移动,所以直接获取记录就是当前正选中的记录。当然,你也可以获取当前选中记录的主键字段的值,然后在新窗口中,将该值作为查询条件,也可以获取到当前在dbgrid中选中的记录的各个字段值,然后赋给控件即可。
procedure Tform1.dbgrid1click(Sender: TObject); begin if datamodule1.adoquery1.RecordCount>0 then //若当前有数据,可进行操作 begin form1edit.Edit1.Text := datamodule1.adoquery1.FieldByName('字段1').AsString; form1edit.Edit2.Text := datamodule1.adoquery1.FieldByName('字段2').AsString; form1edit.ShowModal; //显示新的窗体form1edit end; end;
procedure Tform1.dbgrid1click(Sender: TObject); begin if datamodule1.adoquery1.RecordCount>0 then //若当前有数据,可进行操作 begin form1edit.Edit1.Text := datamodule1.adoquery1.FieldByName('字段1').AsString; form1edit.Edit2.Text := datamodule1.adoquery1.FieldByName('字段2').AsString; .... .... form1edit.ShowModal; //显示新的窗体form1edit end; end;
假定dbgrid1是从adoquery1获取得到的数据。procedure Tform1.dbgrid1click(Sender: TObject);
begin
if datamodule1.adoquery1.RecordCount>0 then //若当前有数据,可进行操作
begin
form1edit.ShowModal; //显示新的窗体form1edit
end;
end;在form1edit的oncreate事件中,代码如下:procedure TForm1edit.FormCreate(Sender: TObject);
begin
edit1.text:=datamodule1.adoquery1.fieldbyname('字段').AsString;
edit2.text:=datamodule1.adoquery1.fieldbyname('字段').asstring;
....
end;
能够如上使用是因为dbgrid中进行数据上下浏览时候,sql数据指针在数据集中移动,所以直接获取记录就是当前正选中的记录。当然,你也可以获取当前选中记录的主键字段的值,然后在新窗口中,将该值作为查询条件,也可以获取到当前在dbgrid中选中的记录的各个字段值,然后赋给控件即可。
2.双击DBGrid显示Form2窗体,并将DBGrid中对应的数据显示到Form2中的对应文本框中。procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
form2.Show;
form2.Edit1.Text := DBGrid1.SelectedField.DataSet.FieldByName('字段1').AsString;
form2.Edit2.Text := DBGrid1.SelectedField.DataSet.FieldByName('字段2').AsString;
........
end;
begin
if datamodule1.adoquery1.RecordCount>0 then //若当前有数据,可进行操作
begin
form1edit.Edit1.Text := datamodule1.adoquery1.FieldByName('字段1').AsString;
form1edit.Edit2.Text := datamodule1.adoquery1.FieldByName('字段2').AsString;
form1edit.ShowModal; //显示新的窗体form1edit
end;
end;
begin
if datamodule1.adoquery1.RecordCount>0 then //若当前有数据,可进行操作
begin
form1edit.Edit1.Text := datamodule1.adoquery1.FieldByName('字段1').AsString;
form1edit.Edit2.Text := datamodule1.adoquery1.FieldByName('字段2').AsString;
....
....
form1edit.ShowModal; //显示新的窗体form1edit
end;
end;