怎样同时关闭所有窗口(在线等待)(100分)

  • 主题发起人 主题发起人 深水蓝
  • 开始时间 开始时间

深水蓝

Unregistered / Unconfirmed
GUEST, unregistred user!
一个MDI程序。怎样设一按扭在不关闭父窗口的情况下,一次将打开的窗口全部关闭?
 
for i:=0 to Application.ControlCount-1do

if Application.Controls is TForm then

TForm(Application.Controls).close;
 
在MDI程序中,子窗体的Close事件默认是Hide,你可以参考OnClose的源代码
你可以设置一个数组的全局变量,比如设置输入Forms是array [1..FormCount] of TForm;类型的。
其中FormCount你可以根据需要自己定义。
初始化主窗体的时候将所有的子窗体保存在数组中,那么对所有子窗体的任何操作都很容易了,比如全部关闭
for i := 1 to FormCountdo

Forms.Close;
 
To zdwwf
呵呵,没有想到我还在编程的时候你已经贴出来了,你的方法不错,收藏
 
不用吧,MDI有取得子窗体HANDLE的方法,得到后发送一个WM_CLOSE消息。
 
var
I: Integer;
begin

for i:=0 to MDIChildCount-1do

MDIChildRen.Close;
end;
 
with SiBoFormdo

for I := MDIChildCount-1do
wnto 0do

MDIChildren.Close;
SiBoForm是主窗口
 
后退
顶部