Четвертый BORLAND С++ и его окружение

Закрытие приложений


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

File Exit или Alt+F4. Однако важно, чтобы приложения могли перехватывать такие попытки и давать пользователю возможность сохранить открытые файлы. TApplication позволяет вам это сделать.

TApplication и все оконные классы могут наследовать функцию-элемент CanClose. При попытке завершения приложения оно вызывает функцию CanClose основного окна и функции CanClose администратора документа. В случае наличия порожденных объектов вызывается функция CanClose каждого такого объекта. CanClose дает каждому

объекту возможность подготовиться к завершению, а также при необходимости отменить завершение. Когда объект завершает очистку, его функция CanClose должна возвращать True. Если возвращается False, процедура завершения прерывается.

Механизм CanClose дает объекту приложения, основному окну и

всем другим окнам возможность подготовиться к закрытию или предотвратить его. Нормальное закрытие имеет такую последовательность:

  • Windows посылает основному окну сообщение WM_CLOSE.
  • Функция-элемент EvClose основного окна объекта вызывает

    функцию-элемент CanClose объекта приложения.

  • Функция CanClose объекта приложения вызывает функцию-элемент CanClose основного окна объекта.
  • Основное окно и объекты администратора документов вызывают

    CanClose для каждого из дочерних окон. Эти функции CanClose возвращают True только в том случае, если все функции-элементы CanClose дочерних окон возвращают True.

  • Если функции CanClose основного окна и администратора документа возвращает True, то функция CanClose объекта приложения также возвращает True.
  • Если функция CanClose объекта приложения возвращает True,

    функция evClose закрывает основное окно и завершает приложение.

  • Функция CanClose по возможности должна выполнить все необходимые для возврата True действия. False следует возвращать только

    в том случае, если она не может выполнить необходимые для правильного завершения действия, или пользователь хочет сохранить

    приложение выполняющимся.



    Содержание раздела