Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.06.13;
Скачать: CL | DM;

Вниз

MDI   Найти похожие ветки 

 
Goblinus   (2002-06-03 00:49) [0]

Почему программа не хочет этим кодом закрывать все дочерние окна?

procedure TForm1.FileSaveAllExecute(Sender: TObject);
var i: integer;
begin
for i:=0 to form1.MDIChildCount do
begin
(Form1.ActiveMDIChild as TForm2).Close;
end;
end;


 
Song ©   (2002-06-03 08:27) [1]

А в каком месте этого отрывка вы идентифицируете дочернее окно по индексу?


 
Игорь Шевченко ©   (2002-06-03 09:26) [2]

Попробуйте так:

procedure TfMain.CloseAllMDIChilds;
begin
while ActiveMDIChild <> nil do begin
ActiveMDIChild.Release();
Application.ProcessMessages();
end;
end;

В вашем примере ActiveMDIChild не успевает меняться, так как нет фразы Application.ProcessMessages и действие Close не успевает сработать.

С уважением,



 
Goblinus   (2002-06-03 10:07) [3]

>>>>> Song >>>>> А в каком месте этого отрывка вы идентифицируете дочернее окно по индексу?

Дык ведь если одно окно закрыть, другое становится активным. Вроде бы так. Или нет?..

>>>>> Игорь Шевченко >>>>>

Попробуйте так:

procedure TfMain.CloseAllMDIChilds;
begin
while ActiveMDIChild <> nil do begin
ActiveMDIChild.Release();
Application.ProcessMessages();
end;
end;

В вашем примере ActiveMDIChild не успевает меняться, так как нет фразы Application.ProcessMessages и действие Close не успевает сработать.

С уважением,

-----------------------------------------------------------------

Спасибо! Это как раз то, до чего я сам не мог додуматься!



Страницы: 1 вся ветка

Текущий архив: 2002.06.13;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.012 c
3-39977
кондратий
2002-05-19 14:16
2002.06.13
DBGrid с нумеротацией строки ...


14-40150
demon-777
2002-05-08 22:43
2002.06.13
С праздником, уважаемые программисты !


3-39951
начинающий програмер
2002-05-18 16:00
2002.06.13
из DBGRID в MEMO


1-40033
demon-777
2002-05-30 04:04
2002.06.13
Как вызвать стандартное окно


1-40036
Olegek
2002-06-01 14:35
2002.06.13
Как программно удалить пункт из ListWiev a?