AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Schliessen verhindern - und später wieder erlauben
Thema durchsuchen
Ansicht
Themen-Optionen

Schliessen verhindern - und später wieder erlauben

Ein Thema von Z4ppy · begonnen am 25. Apr 2008 · letzter Beitrag vom 26. Apr 2008
Antwort Antwort
Seite 1 von 2  1 2      
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#1

Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 20:59
Ich hab nen SplashScreen, während der angezeigt wird, soll das Programm (und damit der SplashScreen) nicht schliessbar sein, der TaskManager sollte das ebenfalls nicht können.
Wird dann die Hauptform angezeigt und das Programm über einen Button dieser Hauptform beendet (es gibt einen Exit-Button), dann soll auch der SplashScreen geschlossen werden...

Ich hab das mit dem unschliessbar mit CanClose:=false; beim OnCloseQuery-Event gelöst, allerdings kann der TaskManager den Prozess immer noch killen. Ausserdem: Wenn ich dann in der Hauptform auf Exit klicke, dann wird das Programm nicht beendet, da die Form2 nicht geschlossen werden kann (wegen dem CanClose:=false)... Wie kann ich CanClose wieder auf true setzen, sobald die Hauptform angezeigt wird? Ich habe mehreres ausprobiert, es geht aber nich

Nun mal paar Codeschnipsel:
Das anzeigen der Hauptform (wird mit einem Timer im SplashScreen geregelt):
Delphi-Quellcode:
Application.CreateForm(TForm1, Form1);
Form1.ShowModal;
Das Hiden des SplashScreens (OnCreate der Hauptform):
Form2.Hide; Wie kann ich nun beim OnClose-Ereignis der Hauptform den SplashScreen closen?

MfG Z4ppy

Edit: Noch etwas hab ich hinzuzufügen: Das mit dem TaskManager muss nur auf XP funktionieren, da das Programm schon so eingerichtet wurde, dass es eh nur unter XP geht Es ist also wichtig, dass der TaskManager von XP das Programm nicht killen kann...
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#2

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 21:39
Zitat von Z4ppy:
Es ist also wichtig, dass der TaskManager von XP das Programm nicht killen kann...
Nicht mal Windows ist so blöd, eine Funktion zu bieten, mit der sich ein Programm "unsterblich" machen kann. Aber erstmal eine Frage: Wieso um alles in der Welt wilst du es dem Benutzer verbieten, dein Programm zu schließen?
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#3

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 21:40
Hmm, es könnte ja sein, dass beim SplashScreen auch noch Daten geladen werden... Wenn nun die Hälfte geladen ist und die andere nicht, dann gibt das erstens beim nächsten Programmstart Probleme und zweitens Datenmüll

Und wegen dem unsterblich: AntiViren-Programme und Firewalls schaffen es ja auch, warum sollte es dann ein Normalsterblicher net schaffen?

MfG Z4ppy

Edit: Ich habe inzwischen eine Teillösung gefunden... Aber das Programm lässt sich immer noch via TaskManager beenden...
Meine Lösung:
Statt wie oben nur Form2.Hide; halt so:
Delphi-Quellcode:
Form2.Hide;
Form2.OnCloseQuery:=nil;
Dass ich da net früher drauf gekommen bin
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 21:45
Dann weise den Benutzer ausdrücklich darauf hin, das Programm während des Ladens nicht zu beenden. Außerdem solltest du besser versuchen, dass Problem am Ursprung zu lösen (Sprich: Die Daten so laden, dass beim Beenden nichts verloren geht etc.) als die Folgen zu unterdrücken.
Und die Idee mit dem unsterblichen Programm solltest du ganz schnell wieder vergessen, das wirst du nicht hinbekommen (und außerdem: Welcher User hat schon gerne ein Programm, das er nicht vollständig im Griff hat!?).

Mfg
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 21:51
Hmm... Naja, das klinngt ganz sinnvoll

Zitat:
Welcher User hat schon gerne ein Programm, das er nicht vollständig im Griff hat!?
Jeder, der ein AntiViren-Programm hat Das kann man schliesslich auch nicht killen... Oder zumindest nicht so einfach

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von Fussball-Robby
Fussball-Robby

Registriert seit: 22. Okt 2007
Ort: Nähe Köln
1.063 Beiträge
 
Delphi 7 Enterprise
 
#6

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 21:53
Bei einem AntiVirenprogramm ist das doch auch einleuchtend, denn immerhin schützen diese das System unter anderem gegen unerwünschte Zugriffe. Wäre schon blöd, wenn man ein solches Programm mit einer einzigen Zeile Code beenden könnte
Robert L.
Der folgende Satz ist richtig!
Der vorherige Satz ist falsch!

Paradox
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#7

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 22:02
Naja, es beweist immerhin, dass es möglich sein muss... Nun ist nur noch die Frage, wie
Aber ich löse das nun wohl anders...

MfG Z4ppy
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 22:54
Antiviren-Programme sind als Dienst implementiert. Diese kann nur der Administrator beenden. Allerdings die Benutzerschnittstellen lassen sich durchau auch von einem normalen Benutzer beenden.

Und wie Fussball-Robby schon sagt, bau dein Programm so, dass ein Beenden die Daten nicht zerstört.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Z4ppy

Registriert seit: 25. Apr 2008
269 Beiträge
 
Delphi 7 Enterprise
 
#9

Re: Schliessen verhindern - und später wieder erlauben

  Alt 25. Apr 2008, 23:40
"Diese kann nur der Administrator beenden"
Hööh? Auch wenn ich als Admin angemeldet bin, kann ich z.B. den Guard von AntiVir nicht beenden

MfG Z4ppy
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Schliessen verhindern - und später wieder erlauben

  Alt 26. Apr 2008, 07:42
Ist auch ein Dienst, der mit dem SYSTEM-Konto läuft.
Markus Kinzler
  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 01:25 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