有关选中dbgrid某一行的问题,急!!!! 我想选中dbgrid某一行然后双击,把这一行的所有字段都显示在一个新的form中,另一种方式是选中一行,然后点击按钮把这一行的所有字段都显示在一个新的form中,请问如何来实现,问题比较初级,请各位不要见笑。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在dbgrid的oncellclick事件里,edit1.text:=dbgrid1.fields[0].asstring; //这是选中的行的第一列值把这个值传入新的FORM就可以了 在新窗体中用"file"菜单下的“use unit”选中原Form确定后,在新窗体中的DBedit1和相应的数据源和字段绑定,在原FORM中的DBGRID的ONDBCLICK事件中加入:新窗体名.show。 我想实现双击触发事件,oncellclick是单击触发事件,另外我说第二种方式如何实现????请教教我!!! 用Dbgrid的OnDblClick事件,然后结合上面edit1.text:=dbgrid1.fields[0].asstring;说的就可以了。如果还不懂的话,我可以帮你做一个原型代码。 你可以在dbgrid的双击事件中做如下处理:form1.edit1.text:=dbgrid1.datasouce.dataset.fieldbyname('字段名').asstring或其他类型具体顺序你就按你的dbgrid的顺序就可以了。 procedure Tfrmdd.DBGrid1DblClick(Sender: TObject);begin if dm.ADOQtempDD.RecordCount >0 then //判断定单数量是否为0; begin dm.ADOQueryXh.Close; dm.ADOQueryXh.Filtered:=false; dm.ADOQueryXh.Open; dm.ADOQueryXh.ExecSQL ; dm.ADOQueryXh.First; frmddbj.ComboBoxxh.Items.Clear; while not dm.ADOQueryXh.Eof do begin frmddbj.ComboBoxxh.Items.Add(dm.ADOQueryXh.fieldbyname('型号').AsString ); dm.ADOQueryXh.Next; end; self.xh:=dm.ADOQtempDD.fieldbyname('序号').AsInteger;//关键--提取数据关键字,来确定行 frmddbj.btnAdd.Visible:=false; frmddbj.Edithpbm.Text:=dm.ADOQtempDD.fieldbyname('货品编号').AsString ; frmddbj.Editdw.Text:=dm.ADOQtempDD.fieldbyname('单位').AsString ; frmddbj.Editdj.Text:=dm.ADOQtempDD.fieldbyname('单价').AsString ; frmddbj.Editsl.Text:=dm.ADOQtempDD.fieldbyname('数量').AsString; frmddbj.Editlb.Text:=dm.ADOQtempDD.fieldbyname('类别').AsString ; frmddbj.ComboBoxxh.ItemIndex:=frmddbj.ComboBoxxh.Items.IndexOf(trim(dm.adOQtempDD.fieldbyname('型号').AsString )); frmddbj.Editkh.Text:=dm.ADOQtempDD.fieldbyname('款号').AsString ; frmddbj.DateTimePicker1.Date:=now; frmddbj.btnddOK.Visible:=false; frmddbj.ShowModal; end;end; to: jenemery(小熊) 谢谢, 有没有办法编码控制其它程序的编辑框的文本输入? 有经验的人进来看看吧,有人注意到这个问题吗? 当窗体最小化时,用的内存比窗体最大化时小很多,这是怎么回事?? 请教一个int64型数据的问题 关于Socket通信问题! 在线等待 初学delphi ,请大家给推荐几本关于delphi的好书,谢谢(内空) 怎样控制delphi中dcube控件字段的制动排序 关于TOleContainer 保存 Word 2007文档 怎样通过传递窗体名称来创建窗体。 我写了一个对串行口写数据的函数,可是一个字符也写不进去,一直在while循环中等待的 关于计算字段的问题。。。。急。。。。在线等大家的帮助!!!!
edit1.text:=dbgrid1.fields[0].asstring; //这是选中的行的第一列值
把这个值传入新的FORM就可以了
form1.edit1.text:=
dbgrid1.datasouce.dataset.fieldbyname('字段名').asstring或其他类型
具体顺序你就按你的dbgrid的顺序就可以了。
begin
if dm.ADOQtempDD.RecordCount >0 then //判断定单数量是否为0;
begin
dm.ADOQueryXh.Close;
dm.ADOQueryXh.Filtered:=false;
dm.ADOQueryXh.Open;
dm.ADOQueryXh.ExecSQL ;
dm.ADOQueryXh.First;
frmddbj.ComboBoxxh.Items.Clear;
while not dm.ADOQueryXh.Eof do
begin
frmddbj.ComboBoxxh.Items.Add(dm.ADOQueryXh.fieldbyname('型号').AsString );
dm.ADOQueryXh.Next;
end;
self.xh:=dm.ADOQtempDD.fieldbyname('序号').AsInteger;//关键--提取数据关键字,来确定行
frmddbj.btnAdd.Visible:=false;
frmddbj.Edithpbm.Text:=dm.ADOQtempDD.fieldbyname('货品编号').AsString ;
frmddbj.Editdw.Text:=dm.ADOQtempDD.fieldbyname('单位').AsString ;
frmddbj.Editdj.Text:=dm.ADOQtempDD.fieldbyname('单价').AsString ;
frmddbj.Editsl.Text:=dm.ADOQtempDD.fieldbyname('数量').AsString;
frmddbj.Editlb.Text:=dm.ADOQtempDD.fieldbyname('类别').AsString ;
frmddbj.ComboBoxxh.ItemIndex:=frmddbj.ComboBoxxh.Items.IndexOf(trim(dm.adOQtempDD.fieldbyname('型号').AsString ));
frmddbj.Editkh.Text:=dm.ADOQtempDD.fieldbyname('款号').AsString ;
frmddbj.DateTimePicker1.Date:=now;
frmddbj.btnddOK.Visible:=false;
frmddbj.ShowModal; end;
end;