Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.03;
Скачать: 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 вся ветка

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

Наверх




Память: 0.49 MB
Время: 0.018 c
14-7693
Карлсон
2003-06-14 14:22
2003.07.03
разводка печатной платы.


1-7521
U-351
2003-06-21 21:39
2003.07.03
Расположение окон в Win


1-7477
Всеволод Соловьёв
2003-06-20 13:09
2003.07.03
HighLight своими силами.


1-7418
Zelius
2003-06-22 20:33
2003.07.03
Как у TPageControl а убить бордер, что бы он не рисовался?


7-7742
demonyator
2003-04-14 23:49
2003.07.03
Как в XP спрятаться от ALT+TAB?