Topic: отменить закрытие главной формы

в роди как  закрытие отменяется таким образом

procedure Form1_OnClose (Sender: TObject; Action: TCloseAction);
begin
  Action := caFree;
end;

но у меня как всегда не работает..

помогите отменить закрытие главной формы ..

Re: отменить закрытие главной формы

procedure frm1oncl (Sender: TObject; Action: TCloseAction);
begin
  Action := caNone;
end;

...

begin

 Form1.OnClose := @frm1oncl;

end.

Re: отменить закрытие главной формы

Можно и раньше:

procedure CloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   ShowMessage('CloseQuery');
   CanClose := false;
end;

procedure Close(Sender: TObject; Action: TCloseAction);
begin
   ShowMessage('Close');
   Action := caNone;
end;

begin
 Form1.OnCloseQuery := @CloseQuery;
 Form1.OnClose := @Close;
end.

Re: отменить закрытие главной формы

vovka3003 wrote:

Можно и раньше:

procedure CloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   ShowMessage('CloseQuery');
   CanClose := false;
end;

procedure Close(Sender: TObject; Action: TCloseAction);
begin
   ShowMessage('Close');
   Action := caNone;
end;

begin
 Form1.OnCloseQuery := @CloseQuery;
 Form1.OnClose := @Close;
end.

Чтобы предотвратить закрытие достаточно одного обработчика OnCloseQuery .  Событие OnClose срабатывает тогда, когда форма уже закрывается, менять Action смысла нет, оно в данном случае только для чтения.

Визуальное программирование: блог и телеграм-канал.

Re: отменить закрытие главной формы

Оставил для наглядности специально.