一个窗体调用另一个窗体无法关闭

rgt27013978 2004-09-02 04:45:48
三个窗体:
form1.button1.clickà自动打开FORM2,自动运行完其中一个模块后à自动关闭FORM2à接下来运行form1.button2.click-à自动打开FORM3,运行完其中一个模块后à自动关闭FORM3à接下来运行form1.button3.click。此时的问题主要是到form1.button3.click运行完后,FORM2与FORM3的窗体才关闭,请问问题如在那里?

procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
Form1.BitBtn2.Click;
end;

procedure Tform3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
Form1.BitBtn3.Click;
end;


...全文
283 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
rgt27013978 2004-09-08
  • 打赏
  • 举报
回复
唉,问题还是没有解决:
第二个窗体之所以自动关闭是因为第三个窗体的打开,而第三个窗体在全部程序运行完的SHOWMESSAGE后才关闭,就是因为最后的SHOWMESSAGE,第三个窗体才关闭,否则在第三个窗体运行完成后一直到最后的SHOWMESSAGE都会在第一个窗体前出现。
这个问题只能自己慢慢研究了。(想不到VFP极简单的东西,到最DELPHI是这么难。为解决vfp中EVALUATE函数所能实现计算表达式的功能,用了一天才搞定,还只能满足一个条件)

见者有分
zdq801104 2004-09-06
  • 打赏
  • 举报
回复
接点分
rgt27013978 2004-09-06
  • 打赏
  • 举报
回复
谢谢CHIJINGDE()的关注,改成Button2.Click也不起作用。也不知修改了哪里,form2窗体运行后可自动关闭,但form3运行后仍不能自动关闭,只有到程序全部运行完才关闭。困惑中.....
chijingde 2004-09-06
  • 打赏
  • 举报
回复
也不知修改了哪里,//呵呵,应该就是我说的那里阿

form3运行后仍不能自动关闭?//贴代码出来看看
chijingde 2004-09-05
  • 打赏
  • 举报
回复
或者改成Button2.Click
chijingde 2004-09-05
  • 打赏
  • 举报
回复
问题出在Sender上



procedure TForm2.Button1Click(Sender: TObject);
begin
begin
运行一段程序........
end;
Button2.onClick(Sender);//注意这里,你觉得这个Sender是什么?
end;

改成Button2.onClick(Button2);试试
zhanglei19820319 2004-09-05
  • 打赏
  • 举报
回复
定义一个变量,
可以用中间变量改变。
qizhanfeng 2004-09-04
  • 打赏
  • 举报
回复
学习
希望得到结果
ghy412 2004-09-04
  • 打赏
  • 举报
回复
接分学习!
rgt27013978 2004-09-04
  • 打赏
  • 举报
回复
谢谢以上各位的关注。
可能是我行表述不清,大家提供的解决办法还不成功。我做的是一个数据下载、数据解压、数据选择和数据导入的程序,缺省状态下是全自动,当然也可以单步运行,单步运行较为简单,现在问题就出在全自动运行上。
我再说一下:
form1为主窗体,按下form1.button1后,自动打开form2,在form2中又有两个button,一个用以执行一段程序,一个用以返回(即结束form2),form2的运行顺序如下:
第一、
procedure TForm2.FormActivate(Sender: TObject);
begin
Button1.Click;
end;
第二、
procedure TForm2.Button1Click(Sender: TObject);
begin
begin
运行一段程序........
end;
Button2.onClick(Sender);
end;

第三
procedure TForm2.Button2Click(Sender: TObject);
begin
close;
end;

form2窗体从打开到关闭全部自动完成,不需按下form2的任何button(当然这两个button是为分步执行时设的)

form3与form2相同。
假如对form2以模式窗体显式,执行完form2的button1时,窗体就停下,必须按下form2的button2,窗体才能关闭,而这不是我想的, 我想要的是这个窗体运行完程序后自动关闭并开始下一步运行。
太空11 2004-09-03
  • 打赏
  • 举报
回复
三个窗体的关系是怎么样的,谁是主窗体?

BigAngell 2004-09-03
  • 打赏
  • 举报
回复
上面几位已经说的得更明确了
longtusoft 2004-09-03
  • 打赏
  • 举报
回复
UP
qizhanfeng 2004-09-03
  • 打赏
  • 举报
回复
如果要达到你的效果
这样就行
procedure TForm1.button1Click(Sender: TObject);
begin
if FORM2.ShowModal = mrok then
Form1.BitBtn2.Click;
end;
procedure Form1.BitBtn2Click(Sender: TObject);
begin
if FORM3.ShowModal = mrok then
Form1.BitBtn2.Click;

end;


qizhanfeng 2004-09-03
  • 打赏
  • 举报
回复
我知道你的意思
这样写当然会是这样的,因为
procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
Form1.BitBtn2.Click;
end;

Tform2.FormClose事件中 调用 Form1.BitBtn2.Click;此时close事件并没有执行完成自然不会关闭


Jeff20040819 2004-09-03
  • 打赏
  • 举报
回复
学习,接分
sundayzhao 2004-09-02
  • 打赏
  • 举报
回复
利用消息就好处理了。
procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
postMessage(form1.handle,MY_Msg,1,0);
end;

procedure Tform3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
postMessage(form1.handle,MY_Msg,2,0);
end;
procedure DelMsg(var Msg:TMessage);message MY_Msg;

procedure Tform1.DelMsg(var Msg:TMessage);
begin
case Msg.WParam of
1:BitBtn2.Click;
2:BitBtn3.Click
end
zhengji 2004-09-02
  • 打赏
  • 举报
回复
不知道楼主的两个窗口是怎么 show 的,要是 ShowModal 的就好办了。

procedure TForm1.button1Click(Sender: TObject);
begin
FORM2.ShowModal;
button2.Onclick(Sender);
BitBtn3.Onclick(Sender);
end;

procedure TForm1.button2Click(Sender: TObject);
begin
FORM3.ShowModal;
end;
rgt27013978 2004-09-02
  • 打赏
  • 举报
回复
谢谢 zzllabc(抱朴子--清心释累,绝率忘情) 的关注 。
form1为主窗体
抱朴守拙 2004-09-02
  • 打赏
  • 举报
回复
三个窗体的关系是怎么样的,谁是主窗体?
procedure Tform2.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Self.Hide;
Form1.BitBtn2.Click;
end;

procedure Tform3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Self.Hide;
Form1.BitBtn3.Click;
end;

16,748

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 语言基础/算法/系统设计
社区管理员
  • 语言基础/算法/系统设计社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧