Как создать событие закрытия формы из другого Юнита? Суть такова: в Delphi (и не спрашивайте, почему именно в Delphi) нужно в одном юните создать форму из другого. Делается это подключением соответствующего Юнита.uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, LView;
...
procedure TForm2.ButtonForwardClick(Sender: TObject);
begin
LView.name := 'l'+Form2.RadioGroup1.ItemIndex+'.rtf'; // LView - 3-й юнит
Form3.Create(self);
Form2.Enabled := false;
end;
После создания формы 3, вторая отключается. Однако включить её из 3-го юнита нельзя, ибо компилятор начинает ругаться на цикличность обращений юнитов.
Вопрос такой: можно в юните 2 прописать ивент на закрытие формы 3?

21 Авг 2019 в 06:29
190 +1
1
Ответы
1

Да, можно создать событие закрытия формы из другого юнита. Для этого необходимо добавить обработчик события OnClose или OnCloseQuery к форме, чтобы отслеживать закрытие формы.

Например, в юните 2 вы можете добавить следующий код:

procedure TForm3.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Form2.Enabled := true;
end;

Таким образом, при закрытии формы 3, форма 2 будет снова включена. Важно не забыть связать этот обработчик события с событием OnClose формы в её свойствах или в конструкторе юнита 2.

20 Апр 2024 в 13:17
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Гарантированные бесплатные доработки в течение 1 года
Быстрое выполнение от 2 часов
Проверка работы на плагиат
Поможем написать учебную работу
Прямой эфир