Re: Beenden von Anwendung verhindern



Jan Becker schrieb in news:44699855$0$11072$9b4e6d93@xxxxxxxxxxxxxxxx
online.net:

Hallo!
Ich möchte gerne, dass eine Anwendung nicht zu beenden ist, bzw. dass
das Form minimiert wird, sofern das X angeklickt wird.

Dazu habe ich in FormCloseQuery die Variable CanClose:=false gesetzt.
Soweit so schön, das Problem ist jetzt leider nur, dass sich Windows
nicht herunterfahren lässt, bevor das Programm nicht aus dem Speicher
fliegt.

Weiß jemand Rat?

Ja, ich:

Du musst Windows erlauben, das Programm zu beenden. Das kannst Du in
einem Ereignishandler für die WM_QueryEndSession-Nachricht machen, mit
der Windows bei allen laufenden Anwendungen nachfragt, ob das
Herunterfahren denn jetzt genehm wäre.

Das sieht dann so aus:

type TMyMainForm
private
AllowClose : boolean;
procedure WMQueryEndSession(var Message: TWMQueryEndSession);
message WM_QUERYENDSESSION;
end;

procedure TMyMainForm.WMQueryEndSession(var Message: TWMQueryEndSession);
begin
Message.Result:=1;
AllowClose:=true;
Close;
end;

procedure TMyMainForm.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
CanClose:=AllowClose;
if not CanClose then
Application.Minimize; // oder sowas ähnliches
end;


Simon
--
Don't panic

Homepage: http://www.picsoft.de
Delphi Fundgrube: http://www.delphi-fundgrube.de
.



Relevant Pages

  • Re: update rollup refuses to unstall on my pc {?}
    ... The message is in german partly. ... Equal To Specified Value ... 0.438: KB925766 Setup hat folgenden Fehler festgestellt: Setup kann nicht ... Microsoft MVP - Windows Media Center ...
    (microsoft.public.windows.mediacenter)
  • Windows Resizen
    ... sondern erst wenn die Größe des Windows ganzzahlig durch ... Dafür habe ich die WM_SIZING Message abgefangen. ... dass wenn man die OnSizing Methode der Basisklasse ... "This member function is called by the framework to allow your application ...
    (microsoft.public.de.vc)
  • =?Windows-1252?Q?Re:_Wie_kann_ich_den_Envent_MouseUp_=FCber_die_Windows_M?= =?Windows-1252?Q
    ... Methode WinProc(ref Message msg) überschrieben. ... Da ich mich bisher noch nicht sehr mit dem msg befaßt habe ist mir nicht bekannt welche WM_xxxxx ich nutzen muß um mitzubekommen, ob die Maus losgelassen worden ist, bzw. ob irgend etwas selektiert worden ist. ... Hier kann man eine Menge (Windows Low Level) lernen. ... Dipl.Inf. Frank Dzaebel ...
    (microsoft.public.de.german.entwickler.dotnet.csharp)
  • Re: Zweites Konto meldet sich immer noch
    ... > ungelesene Emails habe. ... wie ich dieses bloede Message von den ungelesenen ... Am Einfachsten über den Einsatz von TweakUI für Windows XP: ... Herz und Hirn von Windows, nach einem vorherigen Export des Schlüssels, ...
    (microsoft.public.de.german.inetexplorer.ie6.outlookexpress)