
Form1中:
unit uForm1;interfaceuses windows,Messages,SysUtils,Variants,Classes,Graphics,Controls,Forms,Dialogs,DB,ADODB,GrIDs,DBGrIDs,StdCtrls;type TForm1 = class(TForm) btnAdd: Tbutton; grID: TDBGrID; ADOquery1: TADOquery; DataSource1: TDataSource; procedure btnAdd(Sender: TObject); private public constructor Create(Owner:TComponent); overload; end;var form1: TForm1;implementationuses uForm2,uDbOperations;{$R *.dfm}procedure TForm1.btnAddClick(Sender: TObject);var frm : TForm2;begin frm := TForm2.Create(form1); frm.ShowModal; frm.Free;end; 窗体2:
unit uForm2;procedure TForm2.btnAddClick(Sender: TObject);var query : string;begin query := 'Insert into Employees(name) Values('''+txtname.Text+''');'; DbOperations.InsertOrUpdate(query,ADOquery1); ModalResult := mrCancel; //And this here I'd refresh grID on form1 end;end. 如何在form2中添加记录后,在form1中刷新dbgrID?我尝试了很多方法,但没有成功.我知道在C#中需要在构造函数中传递引用,但是delphi如何?
解决方法 使用你的模式,我会做这样的事情:procedure TForm1.btnAddClick(Sender: TObject);var frm : TForm2;begin frm := TForm2.Create(form1); try if frm.ShowModal = mrOK then begin GrID.Datasource.Dataset.Refresh; // some databases require open/close to refresh // in this case GrID.Datasource.Dataset.close; // GrID.Datasource.Dataset.Open; end; finally frm.Free; endend;procedure TForm2.btnAddClick(Sender: TObject);var query : string;begin query := 'Insert into Employees(name) Values('''+txtname.Text+''');'; DbOperations.InsertOrUpdate(query,ADOquery1); ModalResult := mrOK; // let a cancel button on Form2 perform ModalResult = mrCancel // to avoID unnecessary dataset refreshes.. end; 总结 以上是内存溢出为你收集整理的从delphi中的另一个表单刷新DBGrid全部内容,希望文章能够帮你解决从delphi中的另一个表单刷新DBGrid所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)