delphi如何在进入另一个form后执行完再回到原先的主窗口呢? 10

现在我有两个form,一个是主窗口Main还有一个是childMain,在Main中点击按钮,使用withchildMain.create(self)doifshowmo... 现在我有两个form,一个是主窗口Main还有一个是childMain,在Main中点击按钮,使用 with childMain.create(self) do if showmodel=mrok then showdata;进入childMain的窗口,这个子窗口有一个stringgrd控件,主要是查一些数据的,然后查询完后也显示在了stringgrid中,现在我想使用这个stringgrid中的数据,却发现当跳到那个子窗口时就不会再回到Main中了,就一直显示那个childMain。注意:那个childMain我不要使用按钮,那个方法我也会。请大家指教,如何使程序能回到Main中,并且childMain中的数据还存在在那个stringgird中,谢谢了~
难道没人会吗?还是我说的不清楚~~
展开
 我来答
kcxnvbdbd
2014-06-17 · TA获得超过523个赞
知道小有建树答主
回答量:885
采纳率:50%
帮助的人:615万
展开全部
childMain显示了以后,你要在什么情况下关闭这个childMain(比如几秒钟后)
追问
显示后他会自动执行查询语句,然后将查询出来的结果卸载stringgrid中,然后childMain就要消失,回到程序中继续往下执行,在Main中会用到这个stringgrid中的数据。我现在遇到的情况就是在调用了showmodel后显示了childMain,stringgrid中也写好了数据了,可就是一直显示那个窗口,程序无法往下执行下去了
追答
你这好绕啊,那就按你的思路来吧

第一步:
var
form: Tchildform; // 定义这个变量,下面就可以通过这个变量来引用stringgrid了
begin
form := Tchildform.Create(self);
if form.ShowModal = mrok then
begin
//form.StringGrid1...
if form.StringGrid1.Cells[0,0] = '' then // 使用 stringgrid
ShowMessage('123');
end;

Form.Free; //用完要释放内存
end;

第二步:
在childmain里面,不知道你所说的自动查询语句查询是怎么触发的执行的(OnShow还是OnCreate,还是其他什么的事件)

如果是OnShow或者OnCreate;直接是close不掉的,你可以加一个Timer,在查询执行完后,再开启计时器。计时器里面调用 窗体的Close方法。

然后再OnClose事件里面,添加
ModalResult := mrOk;
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式