Текущий архив: 2005.12.25;
Скачать: CL | DM;
Вниз
Не обновляется MDIChildCount Найти похожие ветки
← →
kay © (2005-12-05 16:54) [0]Есть MDI приложение. При выходе из приложения используется процедура для сохранения данных в окнах. Но при закрытии окон не меняется значение MDIChildCount, оно имеет реальное значение только при начале выполнения процедуры.
Вот процедура закрытия приложения:procedure Tmain_form.FormClose(Sender: TObject; var Action: TCloseAction);
var
j:integer;
begin
for j:=MDIChildCount-1 downto 0 do
MDIChildren[j].Close;
if MDIChildCount>0 then Action:=caNone;
end;
Даже когда все окна закрыты, значение MDIChildCount равно тому значению, которое было до выполнения процедуры.
Вот процедуры закрытия дочерних окон:procedure Teko_form.FormClose(Sender: TObject; var Action: TCloseAction);
var
k:integer;
begin
if modified then
begin
k:=MessageDlg("Ñîõðàíèòü "+Caption+" ïåðåä çàêðûòèåì?", mtConfirmation,
[mbYes, mbNo, mbCancel], 0);
case k of
6: begin main_form.saveClick(nil); Action:=caFree; end;
7: Action:=caFree;
2: Action:=caNone;
end;
end
else
Action:=caFree;
end;
//******************************************************************************
procedure Teko_form.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if main_form.MDIChildCount=1 then
begin
main_form.main.Items[0].Items[2].Enabled:=false;
main_form.main.Items[0].Items[3].Enabled:=false;
main_form.run.Enabled:=false;
main_form.save.Enabled:=false;
end;
end;
← →
Игорь Шевченко © (2005-12-05 17:37) [1]
> for j:=MDIChildCount-1 downto 0 do
> MDIChildren[j].Close;
for j:=MDIChildCount-1 downto 0 do begin
MDIChildren[j].Close;
Application.ProcessMessages;
end;
?
← →
kay © (2005-12-05 17:44) [2]работает, спасибо!
и можно понитересоваться, что эта волшебная процедура делает?
← →
Игорь Шевченко © (2005-12-05 17:50) [3]kay © (05.12.05 17:44) [2]
> и можно понитересоваться, что эта волшебная процедура делает?
Поинтересоваться у меня или у клавиши F1 ? :)
← →
kay © (2005-12-05 18:29) [4]у тебя =)
← →
Игорь Шевченко © (2005-12-05 18:38) [5]kay © (05.12.05 18:29) [4]
Волшебная процедура обрабатывает все сообщения, связанные с закрытием формы (а их посылается), до тех пор, пока не очистится очередь сообщений. В процессе обработки сообщений в том числе и корректируется значение MDIChildCount (и еще много всего).
← →
kay © (2005-12-05 18:42) [6]спасибо
← →
The Only © (2005-12-05 21:33) [7]СПАСИБО ОГРОМНОЕ
Страницы: 1 вся ветка
Текущий архив: 2005.12.25;
Скачать: CL | DM;
Память: 0.48 MB
Время: 0.044 c