Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2007, 21:08   #1
Pedro
Форумчанин
 
Аватар для Pedro
 
Регистрация: 25.03.2007
Сообщений: 166
По умолчанию Alt+F4

Как сделать чтобы при нажатии Alt+F4 прога не закрывалась?
Pedro вне форума Ответить с цитированием
Старый 10.08.2007, 21:14   #2
Master-Skull
Пользователь
 
Регистрация: 10.08.2007
Сообщений: 43
По умолчанию

Обработай событие OnCloseQuery:

procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose:=false;
end;
Комьютер не поддаётся законам физики:
Глюки появляются из неоткуда, файлы пропадают в никуда...
Объём диска называется весом и измеряется в метрах...

---------------------------------------------------
Дрова для модема находятся на диске, а дрова для дисковода - в интернете...
Master-Skull вне форума Ответить с цитированием
Старый 10.08.2007, 22:01   #3
Tayfun
Форумчанин
 
Аватар для Tayfun
 
Регистрация: 24.06.2007
Сообщений: 351
По умолчанию

Как отключить Alt+F4
1)В событие формы OnCloseQuery задайте CanClose := false
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
CanClose := false;
end;
2)
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if my_flag = false then CanClose := false;
end;
где my_flag - глобальная переменная. Она всегда false, а в true устанавливается только в событии нажатия кнопки "Отмена".
3)
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if my_flag = false then CanClose := false;
end;
CanClose := my_flag;
4)
procedure TForm1.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Shift = [ssAlt]) and (Key = VK_F4) then Key := 0;
end;
5)
TForm2 = class....
...
procedure WMSYSCOMMAND(var Msg: TWMSysCommand); message WM_SYSCOMMAND;
...
procedure TForm2.WMSYSCOMMAND(var Msg: TWMSysCommand);
begin
if Msg.CmdType <> SC_CLOSE then inherited;
end;
Я не маюсь бездельем, я от него тащусь!
Tayfun вне форума Ответить с цитированием
Старый 10.08.2007, 22:47   #4
Alex21
With best regards
Участник клуба
 
Регистрация: 20.04.2007
Сообщений: 1,448
По умолчанию

Только обсуждали:
http://www.programmersforum.ru/showthread.php?t=4746
Alex21 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц