Thanks for all your help.

The simplest solution I found was just to trap WM_QueryEndSession message on
your form and set a flag.

ie

procedure TExampleForm.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
  fDisableCloseConfirm := true;

  inherited;
end;
// CloseQuery gets called from the ancestor method


procedure TExampleForm.FormCloseQuery(Sender: TObject; var CanClose:
Boolean);
begin
  CanClose := 
    fDisableCloseConfirm 
    or (messageDlg ('Are you sure you want to exit ' + application.title +
'?  ', mtConfirmation, [mbYes, mbNo], 0) = mrYes);
  
  // rest of closing code here                
end;


Useful behaviour for monitoring applications that should always be running
in the background but can close automatically when shutting down the
machine.



---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to