Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Закрытие дочерней формы

Delphi , Программа и Интерфейс , MDI приложения

Закрытие дочерней формы

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

unit Child;

 // Have you noticed that when you try to close a MDIChild form 
// the form minimizes but doesn't disappear from your Main form 
// client area? 
// 
// With this tip you can learn how to really close the MDI child 
// form and free the memory occupied by the form 


interface

 uses
   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs;

 type
   TMDIChildForm = class(TForm)
     procedure FormClose(Sender: TObject; var Action: TCloseAction);
   private
     { Private declarations }
   public
     { Public declarations }
   end;

 var
   MDIChildForm: TMDIChildForm;

 implementation

 {$R *.DFM}

 procedure TMDIChildForm.FormClose(Sender: TObject;
   var Action: TCloseAction);
 begin
   // This line of code frees memory and closes the form 
  Action := caFree;
 end;

 end.

Это пример программирования на Delphi, демонстрирующий, как закрыть форму MDI-ребенка и освободить память, занимаемую формой.

Расшифровка кода:

Декларация модуля Модуль Child начинается с декларации нового класса TMDIChildForm, который наследуется от TForm. Это означает, что TMDIChildForm - это пользовательский класс формы, расширяющий функциональность стандартного класса TForm.

Секция интерфейса В секции интерфейса мы декларируем Uses-кальку, которая импортирует различные модули (библиотеки), необходимые для работы кода. Включены:

  • Windows: предлагает функции и константы, связанные с Windows API.
  • Messages: содержит типы данных и процедуры, связанные с сообщениями.
  • SysUtils: предлагает полезные функции для системных задач.
  • Classes: включает классы, предоставляющие основную функциональность, такие как строки и динамические массивы.
  • Graphics, Controls, Forms и Dialogs: эти модули связаны с разработкой графического интерфейса пользователя (GUI) в Delphi.

Декларация типа Мы декларируем тип TMDIChildForm, который является экземпляром пользовательского класса формы, определенного ранее. Этот тип имеет две части:

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

Декларация переменной Мы декларируем переменную MDIChildForm типа TMDIChildForm. Она будет хранить экземпляр нашего пользовательского класса формы.

Секция реализации В секции реализации мы имеем единственную процедуру TMDIChildForm.FormClose, которая вызывается, когда форма готовится к закрытию. Эта процедура принимает два параметра:

  • Sender: объект, который.triggered событие (в этом случае - сама форма).
  • Action: переменная типа TCloseAction, указывающая, какой действие должно быть выполнено при закрытии формы. Внутри процедуры мы устанавливаем значение Action в caFree, что означает, что форма должна быть освобождена и ее память должна быть высвобождена. Это эффективно закрывает форму и освобождает ресурсы, занимаемые ею.

Строка ресурса Последняя строка $R *.DFM указывает Delphi включить файл ресурсов (.DFM) ассоциированный с этим модулем. В целом, этот код демонстрирует, как создать пользовательскую форму MDI-ребенка в Delphi, которая может быть закрыта и освобождена от памяти, когда это необходимо.

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


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: MDI приложения ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 11:31:24/0.014305114746094/1