Ich würde eine private Variable definieren, die z.B. standardmäßig auf True steht. Dann würde ich in meinem Hauptform eine Procedure
Delphi-Quellcode:
procedure TMeinForm.WMQueryEndSession(var Msg: TWMQueryEndSession);
begin
MeineVariable := False;
Msg.Result := integer(true);
end;
definieren, in der die Variable auf False gesetzt wird. Im Closequery wurde ich die Messagebox nur anzeigen, wenn meine private Variable auf True steht.
Damit sollte Dein Problem gegessen sein.