X xiaozhangyang Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-19 #1 能否在一个工程中建立二个主窗体,任意一个主窗体关闭时不会关闭工程。当二个主窗体都关闭时才关闭工程。
J JamesBond_L Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-19 #2 據我所知,不能,就算做到那種效果,也不是一個功能多個主窗口了。因為的的確確只有一個主窗口,多出來的就不是主窗口,但是非主窗口可以變成主窗口倒是真的。
C creation-zy Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-19 #3 VCL是单线程的,不可能同时存在多个MainForm。对于您的问题,我觉得可以用一个隐藏 的后台窗体做为真正的主窗体(请参考Application.ShowMainForm属性),由它再创建两个 可视的窗体。在这两个窗体的关闭事件中通知主窗体,当主窗体发现它们都被关闭之后,再 Close自己。
VCL是单线程的,不可能同时存在多个MainForm。对于您的问题,我觉得可以用一个隐藏 的后台窗体做为真正的主窗体(请参考Application.ShowMainForm属性),由它再创建两个 可视的窗体。在这两个窗体的关闭事件中通知主窗体,当主窗体发现它们都被关闭之后,再 Close自己。
H hygsxy Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-19 #4 不可能.建立一个工程运行后,也就是创建了一个进程,如果你没有创建别的新的线程,那对一个工程而言,只有一个进程,一个线程,这个线程在进程的地址空间内运行,运行机理是这样,你的说法在一个工程中建立二个主窗体让我分析,那不就成了两个进程了,一旦出现这种情况,是一个程序在运行,还是两个程序在运行,这个你应该很清楚.就算达到你的要求,它也是两个进程在运行.
不可能.建立一个工程运行后,也就是创建了一个进程,如果你没有创建别的新的线程,那对一个工程而言,只有一个进程,一个线程,这个线程在进程的地址空间内运行,运行机理是这样,你的说法在一个工程中建立二个主窗体让我分析,那不就成了两个进程了,一旦出现这种情况,是一个程序在运行,还是两个程序在运行,这个你应该很清楚.就算达到你的要求,它也是两个进程在运行.
M muhx Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-22 #8 用creation-zy的方法吧 定义一个全局布尔变量,比如CanClose: Boolean; 初始时CanClose := Flase; 在那两个所谓的主窗体的OnClose时间中加入 if CanClose then Terminate else CanClose := True;
用creation-zy的方法吧 定义一个全局布尔变量,比如CanClose: Boolean; 初始时CanClose := Flase; 在那两个所谓的主窗体的OnClose时间中加入 if CanClose then Terminate else CanClose := True;
Z zjan521 Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-22 #9 creation-zy 的方法是正确的.否则除非你在自己的工程文件当中包含Forms.pas,然后手动更改需要调整的地方(主要是Application对象的处理),其实也是可以的(没做过,但是理论可行).因为本身Win32的消息相应是一个静态不属于对象的函数,调用了全局变量Application.只要你在Application当中作相应的修改,是可以实现你所说的效果(就像默认情况下,WORD的效果是的)
creation-zy 的方法是正确的.否则除非你在自己的工程文件当中包含Forms.pas,然后手动更改需要调整的地方(主要是Application对象的处理),其实也是可以的(没做过,但是理论可行).因为本身Win32的消息相应是一个静态不属于对象的函数,调用了全局变量Application.只要你在Application当中作相应的修改,是可以实现你所说的效果(就像默认情况下,WORD的效果是的)
X xiaozhangyang Unregistered / Unconfirmed GUEST, unregistred user! 2004-05-27 #10 谢谢大家。 creation-zy的方法是可行的,我已经安他的思路做出来了,现在在测试中。 因为忙很久没上来,不好意思。再过二天再来结帖,再次谢谢大家。