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

Вниз

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

 
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 вся ветка

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

Наверх




Память: 0.46 MB
Время: 0.018 c
3-85383
Sewix
2002-08-18 02:41
2002.09.26
Помогите настроить Alias Manager для работы с Oracle


7-85719
Страждущий
2002-07-15 12:20
2002.09.26
Ком-порт и устройства


1-85441
Yaro
2002-09-15 22:08
2002.09.26
Hook на вызов API-функций


1-85522
Андрей Дмитриев
2002-09-13 12:11
2002.09.26
Потоки


3-85411
ShaggyDoc
2002-09-05 09:32
2002.09.26
Хранение геодезических координат в базе данных