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

Вниз

почему нет WM_CloseQuery?   Найти похожие ветки 

 
Grief ©   (2005-06-23 15:59) [0]

CloseQuery на VCL позволяет запретить закрытие окна. Как быстро сделать так же на WinAPI? WM_CloseQuery к сожалению отсутствует. :(


 
alpet ©   (2005-06-23 16:03) [1]

Перехватывай WM_CLOSE и WM_SYSCOMMAND + SC_CLOSE это посути основные команды закрытия. Кстати зачем с Delphi поставляются исходники VCL ?


 
Digitman ©   (2005-06-23 16:12) [2]


> alpet ©   (23.06.05 16:03) [1]


> зачем с Delphi поставляются исходники VCL ?


очевидно чтобы их А.С.Пушкин читал/изучал.
не царское это дело - читать исходники самого Борланда. дабы понять. что, как и почему делает сам Борланд)


 
Игорь Шевченко ©   (2005-06-24 11:02) [3]

alpet ©   (23.06.05 16:03) [1]

Собственно, только WM_CLOSE.

"An application can prompt the user for confirmation, prior to destroying a window, by processing the WM_CLOSE message and calling the DestroyWindow function only if the user confirms the choice. "


 
Grief ©   (2005-06-24 19:53) [4]

Касательно исходников VCL - я пошагам выполнял - так там и до ассемблера доходит. А тут я ничегошеньки не знаю.
Так как запретить-то закрытие?


 
jack128 ©   (2005-06-24 20:08) [5]

Помедитировав над сообщением Игоря я выяснил следующее:

procedure TCustomForm.WMClose(var Message: TWMClose);
begin
 Close;
end;

А вот медитировать над этим методом я предоставлю тебе, благо асма там нету..


 
NikNet ©   (2005-06-24 20:18) [6]

Удалено модератором


 
Grief ©   (2005-06-25 11:37) [7]

Удалено модератором


 
jack128 ©   (2005-06-25 19:11) [8]

Grief ©   (25.06.05 11:37) [7]
Он же вроде как закроет окно.

Логично. Значит чтобы окно НЕ закрывалось, достаочно убрать вызов Close из обработчика WM_CLOSE


 
Marser ©   (2005-06-25 19:22) [9]

Grief ©   (25.06.05 11:37) [7]
В принципе, wm_close ближе по своеё идее как раз к On_CloseQuery - тебе сообщают, что окно хотят закрыть, а дальше на твоё усмотрение.


 
Grief ©   (2005-06-25 20:25) [10]

Удалено модератором


 
Kerk ©   (2005-06-25 20:32) [11]

Grief ©   (25.06.05 20:25) [10]
Поясните плиз. Как отказаться от закрытия ?


см [8] + думаем головой


 
Grief ©   (2005-06-25 21:04) [12]

Удалено модератором


 
Marser ©   (2005-06-25 22:31) [13]

procedure Formochka.WMClose(var Message: TWMClose);
begin
{Нас типа того... закрывают...}
if {ну и ладно} then
Close{inherited как вариант}
else {да ну вас}
end;

Ну а если мы глубоко погрязли в API, то действуем вот так(в оконной процедуре):

....
wm_close: if {<закрываем контору>} then
Result:=DefWindowProc(wnd,msg,wparam,lparam)
{В данном случае почётное право закрытия передаётся  стандартному обработчику}
else {не закрываем}
Result:=0
//Просто не реагируем
...


 
Grief ©   (2005-06-26 15:39) [14]

Удалено модератором


 
Юрий Зотов ©   (2005-06-26 16:38) [15]

> Grief
> в WinAPI ко мне приходит мессага WM_Close, что с ней делать?
> Result = 0? щас проверю.

Я крайне удивлен тем, что человек, пишущий на API, не утруждает себя чтением справки по оной. Хотя там все написано.


 
Grief ©   (2005-06-26 22:26) [16]

Лень-родная. Особенно когда есть мастера.


 
Kerk ©   (2005-06-26 22:46) [17]

Ну и сволочь ты


 
Grief ©   (2005-06-26 22:53) [18]

Удалено модератором


 
Kerk ©   (2005-06-26 22:56) [19]

Удалено модератором


 
Marser ©   (2005-06-27 01:14) [20]

Удалено модератором


 
Германн ©   (2005-06-27 02:27) [21]

Удалено модератором


 
Marser ©   (2005-06-27 02:33) [22]

Удалено модератором


 
Grief ©   (2005-06-27 10:10) [23]

Удалено модератором


 
VMcL ©   (2005-06-27 10:15) [24]

>>Grief ©   (27.06.05 10:10) [23]

>Да ну. Был бы хелп. Вот у меня к примеру нету.

Врать нехорошо.
http://msdn.microsoft.com/library/default.asp


 
Poirot ©   (2005-06-27 14:17) [25]

<offtop>
А орешние не отменили ешшо?! Туда бы это всё :)
</offtop>
Легче просто написать хоть раз маленькое оконное приложение используя читый WinAPI и по шага посмотреть что и когда приходить - много поелзного найдёшь :)
ЗЫ: мастера долго помогать не будут - ибо голова чтобы есть?:))


 
Grief ©   (2005-06-27 14:59) [26]

Так то в сети. В сети проще у вас спросить. А вот на компе...


 
Игорь Шевченко ©   (2005-06-27 15:01) [27]


>  В сети проще у вас спросить.


За каждый ответ тебе ты обязан платить денег отвечающему. И не иначе.


 
default ©   (2005-06-27 15:03) [28]

Grief ©   (27.06.05 14:59) [26]
"В сети проще у вас спросить."
редкий засланец, однако


 
Kerk ©   (2005-06-27 17:10) [29]

А я сразу сказал, что сволочь. На редкость точным диагноз оказался.


 
Grief ©   (2005-06-27 22:25) [30]

Какие вы тут все злые. На кой нужен форум, если спрашивать нельзя?!


 
Marser ©   (2005-06-28 00:01) [31]

Grief ©   (27.06.05 22:25) [30]
А чтоба отвечать! И ещё таких как ты, пинать. Вот, ветка как растёт уже...

Желаю дойти до понимания самостоятельно и стать нормальным членом сообщества программистов, а не ламером в наклонностями трутня.


 
Игорь Шевченко ©   (2005-06-28 10:22) [32]


> На кой нужен форум


Деньги со спрашивающих собирать. Ты до сих пор не понял ?



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

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

Наверх




Память: 0.54 MB
Время: 0.031 c
14-1122486666
Starcom
2005-07-27 21:51
2005.08.21
Почему в Windows 98/Me енто не работает?


4-1119986951
Ванечка
2005-06-28 23:29
2005.08.21
Права админа


1-1123037753
iskatel
2005-08-03 06:55
2005.08.21
proxy


8-1113547461
stix
2005-04-15 10:44
2005.08.21
рисование простых фигур


3-1121148609
Aln
2005-07-12 10:10
2005.08.21
Ошибка при попытке присвоить значение ADOQuery.SQL.Text???