запретить закрытие формы delphi

Рождение, жизнь и гибель формы

(Перевод одноимённой статьи с сайта delphi.about.com)

Формы имеют свои свойства, события и методы, при помощи которых Вы можете управлять видом и поведением формы. Форма, это обычный компонент Delphi, но в отличие от других, её нет на панели компонентов. Обычно форма создаётся при создании нового проекта (File | New Application). Вновь созданная форма будет главной формой приложения.

Дополнительные формы в проекте создаются через File | New Form. Так же существуют и другие способы создания форм, но здесь мы не будем рассматривать их.

Как и любой другой компонент (объект) форма имеет свои методы и реагирует на события. Давайте рассмотрим некоторые из этих событий.

Событие OnCreate возникает при создании TForm и только один раз. При создании формы (у каторой свойство Visible установлено в True), события произойдут в следующем порядке: OnCreate, OnShow, OnActivate, OnPaint. В обработчике события OnCreate можно сделать какие-либо инициализационные действия, однако, любые объекты созданные в OnCreate будут уничтожены в событии OnDestroy.

Это событие генерируется, когда форма станет видимой. OnShow вызывается сразу перед тем, как форма станет видимой. Это событие случается, если установить свойство формы Visible в True, либо при вызове методов Show или ShowModal.

Это событие генерируется, когда форма становится активной, тоесть когда форма получает фокус ввода. Это событие можно использовать для того, чтобы сменить элемент формы который должен получить фокус.

OnPaint, OnResize Эти события вызываются каждый раз, когда форма изначально создаётся. При этом OnPaint вызывается каждый раз, когда какому-нибудь элементу формы необходимо перерисоваться (это событие можно использовать, если необходимо при этом рисовать на форме что-то особенное).

Когда форма создана и все её элементы ждут своих событий, чтобы обрабатывать их, жизнь формы продолжается до тех пор, пока кто-нибудь не нажмёт крестик в верхнем правом углу формы!

При уничтожении формы, события генерируются в следующем порядке:

Обработчик события OnCloseQuery содержит переменную CanClose, которая определяет, можно ли форме закрыться. Изначальное значение этой переменной True. Однако в обработчике OnCloseQuery можно установить возвращаемое значение CloseQuery в False, чтобы прервать выполнение метода Close.

Если OnCloseQuery вернул CanClose=True (что указывает на то, что форма должна быть закрыта), то будет будет сгенерировано событие OnClose. Событие OnClose даёт последний шанс, чтобы предотвратить закрытие формы. Обработчик OnClose имеет параметр Action со следующими четырьмя возможными значениями: caNone. Форме не разрешено закрыться. Всё равно, что мы установим CanClose в False в OnCloseQuery. caHide. Вместо закрытия, форма будет скрыта. caFree. Форма будет закрыта, и занятые ей ресурсы будут освобождены. caMinimize. Вместо закрытия, форма будет минимизирована. Это значение устанавливается поумолчанию у дочерних форм MDI.

Замечание: Когда пользователь шутдаунит Windows, то будет вызвано OnCloseQuery, а не OnClose. Если Вы не хотите, чтобы Windows завершила свою работу, то поместите свой код в обработчик события OnCloseQuery, хотя CanClose=False не сделает, того, что сделано здесь.

После того, как метод OnClose будет обработан и форма будет закрыта, то будет вызвано событие OnDestroy. В OnCreate обычно делаются действия, противоположные тем, которые проделывались в OnCreate, то есть уничтожение созданных объектов и освобождение выделенной памяти.

Естевственно, что когда главная форма проекта будет закрыто, то приложение будет завершено.

Источник

Запрет на закрытие программы.

Как сделать так, чтобы при нажатие на крестик в правом верхнем углу окна программы, программа бы не закрывалась?
Совсем убирать кнопку не нужно.

Запрет на закрытие программы
Добрый день, форумчане. Мне необходимо запретить пользователю закрывать моё приложение через.

запретить закрытие формы delphiЗакрытие дочернего окна вызывает закрытие программы
Здравствуйте! Не могу никак разобраться, как сделать так, чтобы дочернее окно при его закрытии не.

Запрет на закрытие формы
Как можно запретить закрытие формы? Например, если пользователь не нажал такую-то кнопку, то при.

Запрет закрытие окна
Хотел убрать крестик с окна формы, не основной а другой скажем Forma2, установил ControlBox в.

в эвенте формы в событии OnClose напиши:
Application.Run;

Вот как ет выгледит:

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Run;
end;

И будет тебе счастьезапретить закрытие формы delphiзапретить закрытие формы delphi запретить закрытие формы delphi

Вы меня конечно извиняйте, но дело получается так, если в вашем случае создать кнопку с кодом Form1.close; закрытия программы, то всё будет прекрасно. Но если разок 40 нажать на крестик вверху программы, прога зависает. (попробуйте понажимайте). Исправления извиняйте не придумал. Есть конечно вариант сделать вдобавок неактивным крестик сверху.

Подскажите, как сделать неактивным крестик.

Решение

Нашел решение проблемы. запретить закрытие формы delphi
Выкладываю, может кому пригодится.

Этот код просто не дает закрыть программу через крестик:

Этот код выдает запрос на закрытие:

Решение

Запрет на закрытие формы
Можно ли сделать так, чтобы при запуске формы vba xl юзер не мог ее закрыть нажатием кнопки.

Запрет на закрытие формы
Здравствуйте, подскажите пожалуйста, как реализовать запрет на закрытие формы: есть форма заказа.

Запрет на закрытие формы
Код на запрет закрытие формы void __fastcall TForm1::Button1Click(TObject *Sender) < HMENU.

запретить закрытие формы delphiЗапрет закрытие формы по ALT+F4
С выходными формучане. С утра чет не идет, а для вас уверен плевое дело. Как запретить закрытие.

Запрет на закрытие окна при нажатии на крестик
Можно как то запретить закрытие окна путем нажатия на крестик? Вообще в идеале мне нужно по.

Запрет на закрытие формы если не выбрано значение из поля со списком
Форумчане, доброго времени суток! Есть интерфейс(формы, отчеты, запросы) на Аксесс 2003.

Источник

Отмена onClose

Onclose
Какая функция запрещает закрытие формы и какая разрешает?

запретить закрытие формы delphiOnClose в отдельной процедуре
Доброго времени, господа. Подскажите, пожалуйста, как решить такую проблемку: Пишу модуль.

Не назначается событие onClose
дорый вечер! пытаюсь назначить обработчик событий закрытия но не могу назначить нужную процедуру в.

Закрыть форму минуя обработчик события OnClose
Добрый вечер Уважаемые форумчане! Нужна Ваша помощь, при закрытии дочерней формы генерируется.

В чем отличие Событий OnClose и OnDestroy у формы?
И еще вот например мы закрываем процесс из диспетчера задач то он просто тупо доделывает последнюю.

запретить закрытие формы delphiОтмена таймера
Добрый день, подскажите пожалуйста как сделать при наведении на определенную кнопку, появляется.

запретить закрытие формы delphiSelectDirectory Отмена
SelectDirectory(‘Выберите каталог для поиска файлов’,’\’,Path,); Path это уже указанный путь, что.

Отмена печати чека
Приветствую народ. Подскажите пожалуйста новичку. Есть программа написанная на Delphi 4.

Источник

Отключить кнопку закрытия моего окна

Всем доброго времени суток!

Столкнулся с такой проблемой: у меня есть форма, на ней есть MainMenu, и в нем есть соответствующий пункт для закрытия формы. Мне нужно сделать неактивной кнопку «X», то есть кнопку закрытия окна. Подскажите, пожалуйста, как это сделать. Заранее спасибо!

Код для закрытия окна на кнопку типа BitBtn
Помогите,нужен код, чтобы при нажатии на кнопку окно закрывалась.Вариант с изменением в строке.

Кнопка закрытия окна
Как сделать так чтобы при нажатии на кнопку закрытия(крестик сверху справа) главного окна выходило.

MessageDlg и кнопка закрытия окна
Доброго времени суток! Подскажите, как у MessageDlg предусмотреть нажатие кнопки закрытия окна.

Я пишу в Delphi 10 Lite. Всё отлично работает без ошибок (если правда запускать exe-шник не из среды Delphi).
Проект пока что выложить не могу (пишу с сотового).

Добавлено через 16 минут
Кстати ещё вариант:

бредятина. даже не костыль.

плюс, пора уже забыть о WinExec

Добавлено через 5 минут
Кстати никому не кажется что сам isst, давно забыл про свой вопрос, так-как от него не единого сообщения.

doqsoftware, всё выкладывайте на форум. Ссылки на сторонние ресурсы с пользовательским контентом запрещены.

Простите, что долго не отвечал, пока ответа на мой вопрос тут не обнаружил

Источник

Запретить закрытие формы delphi

На этом шаге мы перечислим основные события, которые могут быть обработаны формой.

Рис.1. Перечень событий, обрабатываемых формой

Событие OnActivate

Событие OnActivate носит нотификационный характер.

Событие OnClose

Параметр Action определяет тип закрытия формы и может принимать одно из следующих значений:

При закрытии формы на экран будет выведено диалоговое окно (рисунок 2):

Рис.2. Диалоговое окно, появляющееся при закрытии приложения

Текст этого примера можно взять здесь.

Событие OnCloseQuery

Пример закрытия формы с подтверждением в этом случае может выглядеть следующим образом:

Текст этого примера можно взять здесь.

Событие OnCreate

Таким образом, в обработчике события OnCreate помещаются те действия, которые должны выполниться только один раз при создании формы. Приведем пример обработчика этого события, где задается цвет фона формы, равный системному цвету, определенному в ядре Windows :

Текст этого примера можно взять здесь.

Событие OnDestroy


Событие OnHide


Событие OnPaint

В следующем примере показано, как загружать графическое изображение в обработчике события OnPaint :

Текст этого примера можно взять здесь.

Событие OnResize


Событие OnShow

На следующем шаге мы рассмотрим основные события от клавиатуры и мыши.

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *