Solved

How to close all?

Posted on 1998-02-10
17
149 Views
Last Modified: 2010-04-04
how do i close all my child MDI forms in
 the master MDI Form?
How do i make the child MDI Forms change/minised into icons?
0
Comment
Question by:superboy
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 8
  • 8
17 Comments
 
LVL 5

Accepted Solution

by:
ronit051397 earned 50 total points
ID: 1358889
To minimize:
var
  I: Integer;
begin
  with Form1 do
    for I := MDIChildCount-1 downto 0 do
      MDIChildren[I].Close;
end;

To Close:
begin
  with Form1 do
    while MDIChildCount>0 do
      MDIChildren[0].Release;
end;
0
 

Author Comment

by:superboy
ID: 1358890
can u write the full code?
what is the MDIChildCount and MDIChildren?
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1358891
What full code?
From Delphi Help file:

property MDIChildCount: Integer;

Run-time and read-only. The value of the MDIChildCount property is the number of child windows open in an MDI application.
----------------------------------------
property MDIChildren[I: Integer]: TForm;

Run-time and read-only. The MDIChildren property array provides access to a child window or form in an MDI application through an index value, I. The value of I is determined by the order in which the window was created. For example, the first MDI child window has an I value of 0.
----------------------------------------
property ActiveMDIChild: TForm;

Run-time and read only. The value of the ActiveMDIChild property is the form that currently has focus in an MDI application. This only applies if the form is of type fsMDIForm.
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 

Author Comment

by:superboy
ID: 1358892
must i declare the variables MDIChildCount, MDIChildren
 and so on?
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1358893
No, It is already declared as a property. Delphi "knows" how many
childs are opened, and how to access them.
0
 

Author Comment

by:superboy
ID: 1358894
if i minismised the forms into icons..
will delphi assigned some default icons to the forms
and can i do a arrangeicons after that?
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1358895
Yes.
0
 

Author Comment

by:superboy
ID: 1358896
how do i add a message dialog when closing each MDI Child form?
like to confirm whether the user want to close../or he want to save what he has done in the MDI child form?

is there a way to check if something is written in the MDI child form when i has a memo in the child form...?
0
 

Author Comment

by:superboy
ID: 1358897
hey ronit, i try your method
To Close:
               begin
                 with Form1 do
                   while MDIChildCount>0 do
                   MDIChildren[0].Release;
               end;
and it crash my application...

the minimise code u wrote, i try it and it is actually for the
close all function...what abt minimised to icons?

0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1358898
I am checking...
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1358899
Sorry my mistake. If you use Delphi 3, write the following code:

To Minimize:

procedure TMainForm.Button1Click(Sender: TObject);
var I: byte;
begin
LockWindowUpdate(Handle);
if MDIChildCount>0 then
  for I := MDIChildCount-1 downto 0 do
    MDIChildren[I].WindowState:=wsMinimized;
LockWindowUpdate(0);
end;

To close:
procedure TMainForm.Button1Click(Sender: TObject);
var I: byte;
begin
LockWindowUpdate(Handle);
if MDIChildCount>0 then
  for I := MDIChildCount-1 downto 0 do
    MDIChildren[I].Close;
LockWindowUpdate(0);
end;

and on the OnClose event of the child form write:
Action:=cafree;
0
 

Author Comment

by:superboy
ID: 1358900
LockWindowUpdate(Handle);
what does this do?
0
 

Author Comment

by:superboy
ID: 1358901
how do i restore all the MDI child windows to their previous
windowstate ? i want to do something like tile..but it does not work..
0
 
LVL 4

Expert Comment

by:d003303
ID: 1358902
you can use the Cascade, Tile and ArrangeIcons methods of the MDI parent for that.
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1358903
LockWindowUpdate(handle) freezes the screen until you call LockWindowUpdate(0). This, in order to increase performance.
0
 

Author Comment

by:superboy
ID: 1358904
LockWindowUpdate(handle) does this make any app hang?
0
 
LVL 5

Expert Comment

by:ronit051397
ID: 1358905
No, It's just preventing from screen to be refreshed while something is being processed.
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction The parallel port is a very commonly known port, it was widely used to connect a printer to the PC, if you look at the back of your computer, for those who don't have newer computers, there will be a port with 25 pins and a small print…
Hello everybody This Article will show you how to validate number with TEdit control, What's the TEdit control? TEdit is a standard Windows edit control on a form, it allows to user to write, read and copy/paste single line of text. Usua…
There are cases when e.g. an IT administrator wants to have full access and view into selected mailboxes on Exchange server, directly from his own email account in Outlook or Outlook Web Access. This proves useful when for example administrator want…
Monitoring a network: why having a policy is the best policy? Michael Kulchisky, MCSE, MCSA, MCP, VTSP, VSP, CCSP outlines the enormous benefits of having a policy-based approach when monitoring medium and large networks. Software utilized in this v…

688 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question