Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Вниз

закрытие всех форм проложения   Найти похожие ветки 

 
malakai   (2002-08-09 18:28) [0]

Привет,
у меня есть ЕХЕ окуда открываются много форм которые находится в ДЛЛ-ках. В процесе работы с одной любой из форм возникат необходимость закрыть все окна приложения кроме главного(ЕХЕ). Я из этой формы посылаю собщение в главное окное:
try
...
except
PostMessage(FMainHandle, WM_CONNECTION_LOST, 0, 0);
end;

в главное окно есть такой код:

...
procedure OnConnectionLost(var Msg: TMessage); message WM_CONNECTION_LOST;
...
function EnumThreadWndProc(Hwnd: THandle; LPARAM: Longint): Boolean; stdcall;
begin
if Hwnd <> frmMain.Handle then
if Hwnd <> Application.Handle then
SendMessage(Hwnd, WM_CLOSE, 0, 0);
//SendMessage(Hwnd, WM_SYSCOMMAND, SC_CLOSE, 0);
Result := True;
end;
procedure TfrmMain.OnConnectionLost(var Msg: TMessage);
begin
EnumThreadWindows(GetCurrentThreadId, @EnumThreadWndProc, 0);
SetDisconnectState();
MessageDlg("Connection lost.", mtInformation, [mbOK], 0);
end;

проблема в том что иногда после срабатывния этого кода закрывается приложение без каких нибудь ероров.
Я могу это решить это посыля не WM_CLOSE а мое собщение и написать в каждом окне обработчик в каждом нужном окне, но хочетьтся знать почему крашится в этом случе приложение, ведь на WM_CLOSE окна должны срабатывать нормально?
спасибо заранее.


 
malakai   (2002-08-11 18:47) [1]

аууу, народ отзовитесь кто нибудь !



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

Форум: "WinAPI";
Текущий архив: 2002.09.26;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.007 c
1-85569
diMAN
2002-09-12 18:29
2002.09.26
Эффективная работа со множеством форм


1-85485
AFrolov
2002-09-16 17:31
2002.09.26
Как узнать какой флажок сняли/установили в TCheckListBox


7-85728
Чайник2
2002-07-09 11:51
2002.09.26
CD-ROM


3-85405
Sub
2002-09-06 09:06
2002.09.26
Отчеты


3-85327
Gaber
2002-09-04 13:01
2002.09.26
SQL запрос





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский