Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Как зделать чтобы форма не закрывалась на ALT+F4

6.8K
28 апреля 2007 года
bolt90
80 / / 25.01.2007
Не могу никак убрать, что бы форма закрывалась на ALT+F4
пробывал при нажатии игнорировать, все равно закрывает
263
29 апреля 2007 года
koltaviy
816 / / 16.12.2004
А код покажешь?? :)
Судя по задаче, тебе необходимо запретить пользователю закрыть приложение до выполнения какого-либо действия.
Если так, то это делается легко - в событии OnCloseQuery ставишь параметр Close(по-моему) в false, если закрывать нельзя, иначе - либо ставишь в true, либо ничего не делаешь!!
7.8K
29 апреля 2007 года
Hrew
185 / / 23.04.2007
пропишите строку CanClose=false; в OnCloseQuery.

Кстати, Вы видимо пытаетесь запретить пользователю закрывать Ваше приложение. Вы учитываете, что это можно сделать и, например, из диспетчера задач, просто завершив соответствующий процесс? Простая защита от ALT+F4 Вам в этом случае не поможет.
6.8K
29 апреля 2007 года
bolt90
80 / / 25.01.2007
хорошо. А если я хочу чтобі форма закрівалась на кнопку[COLOR="Red"] P[/COLOR] ?

можно примерно так в OnPressKey

if(Key==(0x50)){Close();}
else {
OnCloseQuery([COLOR="#ff0000"]чото там...[/COLOR]){CanClose=false;}
}
7.8K
29 апреля 2007 года
Hrew
185 / / 23.04.2007
Начнем сначала: при попытке закрыть форму вызывается метод CloseQuery. Чтобы закрыть форму, он должен вернуть значение true. Для проверки этого условия этот метод вызывает обработчик OnCloseQuery, возвращающий значение переменной CanClose (по умолчанию = true). Если переменная CanClose установлена в false, Вы форму закрыть не сможете (кроме как завершить процесс). Не сможете Вы и вызвать обработчик OnCloseQuery из if. Поэтому можно сделать так :

Код:
bool ICanCloseMyForm=false;
void __fastcall TForm1::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  if (Key == 'P')
    {
      ICanCloseMyForm=true;
      Close();
    }
}
void __fastcall TForm1::FormCloseQuery(TObject *Sender, bool &CanClose)
{
CanClose=ICanCloseMyForm;
}
6.8K
29 апреля 2007 года
bolt90
80 / / 25.01.2007
сенк, я понял :)

токо надо еще дописать было в заголовке private: bool ICanCloseMyForm;

;)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог