Autor Beitrag
colaka
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 200
Erhaltene Danke: 4

Win XP, W7
Delphi 2005 Prof.
BeitragVerfasst: Fr 03.07.09 07:06 
Hallo,

ich habe eine Anwendung mit mehreren MDI-Childfenstern und möchte, daß beim Öffnen eines ganz bestimmten Childfensters alle anderen Childfenster geschlossen werden, falls überhaupt eines geöffnet ist.

Gibt es so einen allgemeinen Befehl, mit dem man alle eventuell geöffneten Childfenster schließen kann?

Danke Ebi


Zuletzt bearbeitet von colaka am So 05.07.09 09:57, insgesamt 1-mal bearbeitet
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19315
Erhaltene Danke: 1747

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Fr 03.07.09 10:51 
Da musst du schon selbst alle durchgehen und alle anderen schließen, also so ungefähr.
ausblenden Delphi-Quelltext
1:
2:
3:
  for i := MDIChildCount - 1 downto 0 do
    if MDIChildren[i] <> ... then
      MDIChildren[i].Close;
ffgorcky
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 573

WIN XP/2000 & 7Prof (Familie:Win95,Win98)

BeitragVerfasst: Fr 03.07.09 13:47 
Also ich bin auf dem MDI-Gebiet eigentlich noch unbewandert, aber ich denke mal, dass doch die Child-Fenster auch alle einen Namen haben, also müsste das dann so gehen (die Lösung von user profile iconjaenicke nur leicht abgewandelt):
ausblenden Delphi-Quelltext
1:
2:
3:
for i := MDIChildCount - 1 downto 0 do    
   if not MDIChildren[i].Name=offenzulassendesFenster then      
      MDIChildren[i].Close;

Das Ganze müsste ja aber auch mit (hoffentlich eindeutigen!) Fenstertiteln gehen:
ausblenden Delphi-Quelltext
1:
2:
3:
for i := MDIChildCount - 1 downto 0 do    
   if not MDIChildren[i].Title=titelDesOffenzulassendenFensters then      
      MDIChildren[i].Close;


Damit könntest Du dann den Benutzer einen offenzulassenden Fenstertitel auswählen lassen.