Вниз
Скачать: CL | DM;

Alt+F4   Найти похожие ветки 

 
mao ©   (2003-06-20 08:11) [0]

Как-то можно отключить срабатывание комбинации клавиш Alt+F4 в своей проге?


 
pod   (2003-06-20 09:04) [1]

Попробуй обработать событие: OnCloseQuery


 
pod   (2003-06-20 09:09) [2]

Ща точто скажу :эм, а вот держи:
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := False;
end;


 
Term   (2003-06-20 09:27) [3]

так он вообще форму не закроет


 
Nucl ©   (2003-06-20 09:45) [4]

хуком на клаву
или если проще, на главной форме
KeyPreview в True
и на KeyDown отлавливаешь эти клавиши.


 
Karluha   (2003-06-20 10:09) [5]

OnKeyDown попробуй обработать и Key := #0 сделать


 
McSimm2   (2003-06-20 10:12) [6]


procedure TMainFrm.BitBtn2Click(Sender: TObject);
begin
MainFrm.Close;
end;

procedure TMainFrm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if messageDlg("Хотите выйти?",
mtConfirmation,[mbyes,mbno],0)=mryes then
Application.Terminate;
end;

procedure TMainFrm.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_F4) and (ssAlt in Shift)
then Close;
end;


 
McSimm2   (2003-06-20 10:15) [7]

Аа-а-а, её не нужно закрывать.... тады так:

procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (ssAlt in Shift) and (Key=VK_F4) then Key:=0;
end;


 
Karluha   (2003-06-20 10:18) [8]

McSimm2 - я може чего не понял, но наверное запрос о закрытии обычно делается в OnCanClose ?
А это:
procedure TMainFrm.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_F4) and (ssAlt in Shift)
then Close;
end;

ПРОИЗВЕДЕНИЕ ИССКУССТВА БЛИН
Зачем делать закрытие формы по Alt-F4, если форма и сама закроется :)


 
Karluha   (2003-06-20 10:19) [9]

Сори. Снимается


 
mao ©   (2003-06-20 10:23) [10]

Ок. Всем сенкью. Всё получилось. :)


 
McSimm2   (2003-06-20 10:24) [11]

:)


 
pauk   (2003-06-20 18:27) [12]

а исчо можна так:

public
procedure WM_SYSCOMMAND(var Message: TMessage);
Message WM_SYSCOMMAND;

procedure TForm1.WM_SYSCOMMAND(var Message: TMessage);
BEGIN
if message.WParam= 99999 then Exit
else inherited;
end;


 
pauk   (2003-06-20 18:29) [13]

99999 надо разумеется заменить на необходимы код, который можно узнать, если перевести прогу в режим пошагового выполнения и иницировав этот самый Alt+F4


 
pauk   (2003-06-20 18:46) [14]

Кстати, прога не будет закрываться не только по Alt+F4 по всем другим способам. Единственный способ - через диспетчер задач


 
pod   (2003-06-21 03:31) [15]

Первое придложение мне кажется самое пушечное!
Потом ложиш на форму кнопку close на обработчик пишеш скажем

button3.enebled:=true;
close;

А на OnCloseQuery пишеш типа

if button3.enebled:=true then
CanClose := true;




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

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.011 c
14-7609
degatul
2003-06-18 17:06
2003.07.03
Литература


14-7646
BaRToV
2003-06-13 03:02
2003.07.03
Delphi + Asm вставки


9-7283
MRB_SPB
2003-01-15 18:16
2003.07.03
PlayStation2


1-7386
Onward
2003-06-22 23:07
2003.07.03
Как можно изменить размеры клиентской области рабочего стола?


14-7647
6Labs
2003-06-16 08:46
2003.07.03
Модули в играх




   Наверх