在DELPHI中窗体之间 如何传递数据?
2014-01-10
展开全部
在delphi中窗体以Unit为单位,你可以将变量置于Interface即应用程序级变量,也可以作为窗体类public数据成员出现,这样在创建了这个窗体类的实例后就可以在另一个窗体类实例中访问这个变量。看了你的部分程序后,原来问题不是出在变量的窗体间传递上,而是你在进行delphi中窗体动态创建和释放中出现了问题。在Tfrm_Tyxg的label5click过程中动态创建了Tfrm_chaxun的实例,但在Tfrm_chaxun的查找按钮事件中又创建了一次Tfrm_Tyxg的实例,而在此之前,Tfrm_Tyxg的实例已存在,所以你要释放两次。据我所知,要完全释放一个窗体实例,需用FreeAndNil(窗体实例名)函数,一般在窗体的onclose事件中使用,单单用close是无法释放窗体实例指针的,再次create时会发生内存错误。
2014-01-10
展开全部
我作了一个统一修改和查询的窗体,统一修改中有一个LISTCHECKBOX控件,显示要修改的职工,我在这个窗体中调用查询的窗体,在查询窗体中进行相应的查询,查询完之后我希望查询的结果能够在统一修改的窗体LISTCHECKBOX控件中显示出查询的结果:这样窗体之间该如何传递?我首先在统一修改的窗体中写了这样的程序: public procedure setparams(sql:string); end;var Frm_Tyxg: TFrm_Tyxg; v_sql:string;implementationuses u_chaxun;{$R *.dfm}procedure TFrm_Tyxg.setparams(sql:string);begin v_sql:=sql;end;procedure TFrm_Tyxg.Label5Click(Sender: TObject);begin with tFrm_chaxun.create(self) do begin show; end;end;然后在查询的窗体的查找按钮中写了这样的程序:with tfrm_tyxg.Create(self) do begin setparams(sql_str); show; end; close;这样确实可以得到查询的语句v_sql,但是我在统一修改的窗体的关闭按钮中:close;则要关闭两次,如果我要写上form1.close 就会出错怎么会事?
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-10
展开全部
hoho,好好考虑一下。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2014-01-10
展开全部
关闭时还是出现那样的问题
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询