ALT-F4
От: northwind Россия  
Дата: 24.10.03 07:20
Оценка:
Как сделать так, чтобы по ALT-F4 не закрывалось окно?
Re: ALT-F4
От: Курилка Россия http://kirya.narod.ru/
Дата: 24.10.03 07:46
Оценка:
Здравствуйте, northwind, Вы писали:

N>Как сделать так, чтобы по ALT-F4 не закрывалось окно?


Несколько нечёткий вопрос, но у формы есть событие OnCloseQuery, которое определяет возможность закрытия окна вот в нём можно CanClose установить в false и окно не будет закрываться, другое дело что как-то оно должно закрываться (не через таск менеджер же )
Если чиста клавиатурное событие отловить надо, то тут скорее хук надо ставить и отлавливать комбинацию — где-то вроде примеры были, не помню где, правда...
Re: ALT-F4
От: AlexVinS Россия  
Дата: 24.10.03 07:51
Оценка:
Здравствуйте, northwind, Вы писали:

N>Как сделать так, чтобы по ALT-F4 не закрывалось окно?


Только по ALT-F4 или вообще?


Умный человек знает не многое, но нужное
Re: ALT-F4
От: Leonid Troyanovsky  
Дата: 24.10.03 07:54
Оценка:
Здравствуйте, northwind, Вы писали:

N>Как сделать так, чтобы по ALT-F4 не закрывалось окно?


Сделать приложению свой обработчик WM_SYSCOMMAND (SC_CLOSE).
Кроме того, можно дизейблить сам пункт закрытия в системном меню, т.е.

procedure TForm1.FormCreate(Sender: TObject);
begin
 // BorderIcons := BorderIcons - [biMaximize];
 EnableMenuItem( GetSystemMenu(Handle, False),
                 SC_CLOSE,
                 MF_BYCOMMAND or MF_DISABLED or MF_GRAYED);
end;


Ну, и, конечно, предусмотреть альтернативный способ закрытия,
а также корректную обработку WM_QUERYENDSESSION.

--
С уважением, LVT
--
С уважением, LVT
Re: ALT-F4
От: akasoft Россия  
Дата: 24.10.03 08:16
Оценка: +1
Здравствуйте, northwind, Вы писали:

N>Как сделать так, чтобы по ALT-F4 не закрывалось окно?


Думаю, что это неправильно. Окна всё же должны не наглеть.

Но можно поробовать подменить оконную функцию TForm либо TApplication

procedure WndProc(var Message: TMessage); override;


и пытаться блокировать уж если не эту нужную комбинацию клавиш, то WM_QUIT...
... << RSDN@Home 1.1 beta 2 >>
Re[2]: ALT-F4
От: Leonid Troyanovsky  
Дата: 24.10.03 10:51
Оценка:
Здравствуйте, akasoft, Вы писали:

N>>Как сделать так, чтобы по ALT-F4 не закрывалось окно?


A>Думаю, что это неправильно. Окна всё же должны не наглеть.


Так часто поступают, когда хотят прятать окошко туда "где часики".
Т.е., вместо закрытия — скрытие главного окна.

A>Но можно поробовать подменить оконную функцию TForm либо TApplication

..
A>и пытаться блокировать уж если не эту нужную комбинацию клавиш, то WM_QUIT...

IMHO, WM_QUIT туда может и не попасть.
Оно обычно посылается потоку и завершает цикл GetMessage.

--
С уважением, LVT
--
С уважением, LVT
Re[3]: ALT-F4
От: northwind Россия  
Дата: 24.10.03 12:02
Оценка:
LT> Так часто поступают, когда хотят прятать окошко туда "где часики".
LT> Т.е., вместо закрытия — скрытие главного окна.


Нет, я просто показываю одному человеку фокус, как реализовать простейшиую парольную
защиту
Re[4]: ALT-F4
От: Leonid Troyanovsky  
Дата: 24.10.03 12:19
Оценка:
Здравствуйте, northwind, Вы писали:

LT> Так часто поступают, когда хотят прятать окошко туда "где часики".

LT> Т.е., вместо закрытия — скрытие главного окна.

N>Нет, я просто показываю одному человеку фокус, как реализовать простейшиую парольную

N>защиту

Ну, а чем тогда помешал Alt-F4?
Оное нажатие можно интерпретировать как желание закончить ввод требуемого, как, например, кнопки OK (default) или клавиши Return.
В любом случае, успешный вход, видимо, определяется чем-то отличным от способа закрытия диалога.
Т.е., если после закрытия диалога не удалось получить требуемое, то этот диалог можно показать и еще раз.

--
С уважением, LVT.
--
С уважением, LVT
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.