AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi FormCloseQuery verhindert das runterfahren von windows.. ?
Thema durchsuchen
Ansicht
Themen-Optionen

FormCloseQuery verhindert das runterfahren von windows.. ?

Ein Thema von agm65 · begonnen am 30. Mai 2006 · letzter Beitrag vom 30. Mai 2006
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#1

FormCloseQuery verhindert das runterfahren von windows.. ?

  Alt 30. Mai 2006, 09:57
guten morgen freunde, habe folgendes problem:
meinen FormCloseQuery:

Delphi-Quellcode:
if CloseForm = 1 then Canclose := True
else
CanClose := false;

  if not CanClose then
    hide;
das verhindert beim klick auf X das schließen der form.
ich übergebe 0 - 1 an CloseForm um das Programm zu schließen bzw zu hiden, wenn ich jetzt aber windows runterfahren will, geht das nicht und mein progg wird als einziges nicht geschlossen. danke für eure hilfe.
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 10:00
Du solltest schon ein bisschen mehr Quellcode zeigen, dann wird das Helfen einfacher...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 10:05
Weil Windows dein Programm nicht "normal" beenden kann, das verhinderst du ja erfolgreich. Wahrscheinlich wird Wiondows nach ein paar Sekunden dann versuchen dein Programm abzuschießen.

Aber diese Frage hatten wir schon oft bei solchen nicht-schließen-gegen-die-Standards-verstossen-Spielereien, deswegen such einfach mal nach Hier im Forum suchenWM_QUERYENDSESSION.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#4

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 10:18
jo, vielen dank !
euer Peter Porka
  Mit Zitat antworten Zitat
Olli
(Gast)

n/a Beiträge
 
#5

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 10:23
Die relevanten Registrywerte zum Thema sind:

- WaitToKillAppTimeout
- HungAppTimeout
- WaitToKillServiceTimeout

alles REG_DWORD unter HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l und in Millisekunden. Aber hier liegt einfach, wie Luckie schon bemerkte, eine Fehlfunktion seitens des Programmes vor.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#6

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 10:25
und das war die lösung.

Delphi-Quellcode:
private
    { Private-Deklarationen }
      procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession;


procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
Msg.Result := 1;
Close;
end;
danke euch
euer Peter Porka
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 10:48
Aber dann wird ja wieder OnCloseQuery aufgerufen oder änderst du irgend wo den Wert von CloseForm?

Und warum ist CloseForm als Integer deklriert? Deklarier es als Boolen:

Delphi-Quellcode:
CanClose := CloseForm;
if not CanClose then
  hide;
Und in WM_QUERRYENDSESSION:
Delphi-Quellcode:
procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
begin
  Msg.Result := 1;
  CloseForm := True;
  Close; // Wird das noch gebraucht? Ich weiß es nicht.
end;
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#8

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 11:01
ist doch egal ob integer oder Boolen true/false oder 0/1 .... naja vielleicht ist Boolen doch besser !
euer Peter Porka
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#9

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 11:12
Das ist eben nicht die richtige Loesung.
Bei WM_QUERYENDSESSION signalisiert man nur das man nichts gegen ein Runterfahren des Rechners hat.
Wenn man sich hier beendet, dann kann es passieren das ein spaeter gefragtes Programm nicht Zustimmung signalisiert und das Herunterfahren damit abbricht.
Das Programm hat sich also unnoetig beendet.
  Mit Zitat antworten Zitat
Benutzerbild von agm65
agm65

Registriert seit: 21. Okt 2003
1.194 Beiträge
 
Delphi 2006 Professional
 
#10

Re: FormCloseQuery verhindert das runterfahren von windows..

  Alt 30. Mai 2006, 11:15
okay danke
euer Peter Porka
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:45 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz