Форум: "Основная";
Текущий архив: 2002.02.14;
Скачать: [xml.tar.bz2];
Вниз
Запрещение 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.006 c