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

Вниз

Запрещение Alt + F4   Найти похожие ветки 

 
Lord BDV   (2002-01-28 20:15) [0]

Приветствую, Мастера.
Подскажите, пожалуйста, как сделать так, чтобы форму моей программы нельзя было закрыть стандартными средствами с клавиатуры (например, такими, как Alt + F4).


 
DeCompiler   (2002-01-29 00:06) [1]

На событие OnKeyPress (или OnKeyDown? память никуда :) отлавливай следующее:


if (Key = VK_F4) and (ssAlt in Shift) then
//FuckUP :)
Key := 0;


Впрочем, если очень надо, прогу можно затерминатить из великой комбинации из трех пальцев... Смотри в SystemParametersInfo, дальше параметр SPI_SCREENSAVER_RUNNING...

Успехов.


 
Back   (2002-01-29 00:09) [2]

Mona:=Boolean;// типа закроем или нет


procedure Form1.Create()
..
Mona:=False;
..
..

Procedure ()
..
Mona:=True;// тоесть если в данном случае нам уже надо её закрыть
ну можно использовать и такое:
Application.Terminate;
..
..

procedure Form1.Close();
begin
If Mona then Action:=caFree
else Action:=caNone;
end;

ну вот и всё






 
Kirill   (2002-01-29 12:19) [3]

Можно без
Application.Terminate;
на событии OnCloseQuery() ставишь CanClose:=Mona;
В обработчике меню или на кнопке где выключаете прогу Mona:=true;


 
novomod   (2002-01-31 14:56) [4]

при событии OnCloseQuery пишешь CanClose:=false; и всё!!!



 
kaif   (2002-01-31 15:09) [5]

Можно круче:
в OnCloseQuery вписать:
raise Exception.Create(
"Кто это тут мою форму пытается закрыть?"+#13+
"Для закрытия формы обратитесь к системному администратору");


 
Johnmen   (2002-01-31 15:09) [6]

>Back & >Kirill & >novomod : мужики, надо же отвечать на поставленный вопрос !, как это сделал DeCompiler, забыв упомянуть, что Form1.KeyPreview:=True;


 
Johnmen   (2002-01-31 15:11) [7]

>>>kaif : кайфово !!!!!!!!!!!!!!!


 
Kirill   (2002-01-31 16:32) [8]

2Johnmen:
А на что я по-вашему ответил?


 
Johnmen   (2002-01-31 16:54) [9]

>Kirill : по-моему, вы ответили на вопрос, как предотвратить закрытие формы по любому, причем еще и заводя переменную Mona,
а изначальный вопрос...
нельзя было закрыть стандартными средствами с клавиатуры (например, такими, как Alt + F4).


 
Kirill   (2002-01-31 17:32) [10]

2Johnmen:
Вы ошиблись. Для наглядности приведу пример:
type
Form1 = class(TForm)
...
mnExit : TMenuItem
...
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(...);
procedure mnExitClick(...);
private
Mona : boolean;
...
end;

procedure Form1.FormCreate(Sender: TObject);
begin
Mona:=false;
end;

procedure Form1.mnExitClick(...);
begin
Mona:=true;
Close;
end;

procedure Form1.FormCloseQuery(...)
begin
CanClose:=Mona;
end;


 
Johnmen   (2002-01-31 17:43) [11]

> Kirill : да я не спорю, что так можно и так работает,
я просто говорю, что было Запрещение Alt + F4 (см. заголовок вопроса), а это лучше делать см. DeCompiler


 
Kirill   (2002-01-31 17:57) [12]

Я развил ответ Back"а!
Мой ответ тоже подходит. А какой использовать - выбор автора. :-)


 
Back   (2002-02-01 00:27) [13]

Нифига себе, пока меня небыло вы тут такое ..... ТАКОЕ развернули. Я просто предложил, сам так делаю, а вы ???
Давайте смотреть проще



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

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

Наверх




Память: 0.49 MB
Время: 0.009 c
1-42715
blankalex
2002-02-01 12:14
2002.02.14
Raize Components


1-42742
asdf
2002-01-30 13:24
2002.02.14
Создание объектов


1-42793
raspirator
2002-01-30 21:20
2002.02.14
Как конвертировать!!!


1-42735
Alex
2002-01-30 21:50
2002.02.14
Елементы комбинаторики.


1-42796
Leo^Sun
2002-01-31 21:03
2002.02.14
Переменная String