AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Programmabbruch über Windows-Fenster 'x' verhindern
Thema durchsuchen
Ansicht
Themen-Optionen

Programmabbruch über Windows-Fenster 'x' verhindern

Ein Thema von Gerkey · begonnen am 27. Dez 2016 · letzter Beitrag vom 3. Jan 2017
Antwort Antwort
Gerkey

Registriert seit: 18. Okt 2016
Ort: Bad Kreuznach
52 Beiträge
 
Delphi XE Professional
 
#1

Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 27. Dez 2016, 11:18
Delphi-Version: 2010
Möchte gerne verhindern, dass das Anwendungsprogramm über Klick auf 'x' im Windows-Fenster beendet werden kann oder zumindest eine Warnung ausgeben, falls das versucht wird !
Kann mir da jemand helfen ?

Gerkey
  Mit Zitat antworten Zitat
Der schöne Günther

Registriert seit: 6. Mär 2013
6.110 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 27. Dez 2016, 11:20
Schau dir mal die Events OnClose und OnCloseQuery deines Formulars an.
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.337 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 27. Dez 2016, 11:25
Du kannst auch die BorderIcons im Objektinspektor ausstellen.
Allerdings funktioniert Alt-F4 trotzdem noch.

Hängt also ein bisschen davon ab, was du erreichen willst.
Peter
  Mit Zitat antworten Zitat
a.def
(Gast)

n/a Beiträge
 
#4

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 27. Dez 2016, 12:27
Schau dir mal die Events OnClose und OnCloseQuery deines Formulars an.
In OnCloseQuery kannst du CanClose auf False setzen. Dann hast du dein Ziel erreicht.
Wenn du dein Programm aber selbständig mit Close; schließen möchtest, wird das ebenfalls nicht mehr funktionieren.
Mit einer Zeile Code ist es also nicht getan.
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#5

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 27. Dez 2016, 13:07
Da gab es mal was "Shell-Ersatz". Im Zusammenhang mit dem BKA-Trojaner.
Ich finde das nur gerade nicht.
Wenn ich mich richtig erinnere kann man eine Shell sooft beenden wie man will, sie wird automatisch neu gestartet.

Bin mir allerdings überhaupt nicht sicher.

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
Gerkey

Registriert seit: 18. Okt 2016
Ort: Bad Kreuznach
52 Beiträge
 
Delphi XE Professional
 
#6

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 3. Jan 2017, 15:46
Danke für den Tip mit OnCloseQuery. Das hat mit ein paar zusätzlichen Statements gut geklappt !

gerkey
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#7

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 3. Jan 2017, 16:21
Schau dir mal die Events OnClose und OnCloseQuery deines Formulars an.
In OnCloseQuery kannst du CanClose auf False setzen. Dann hast du dein Ziel erreicht.
Wenn du dein Programm aber selbständig mit Close; schließen möchtest, wird das ebenfalls nicht mehr funktionieren.
Mit einer Zeile Code ist es also nicht getan.
Zum besseren Verständnis Siehe!
Schließen von Fenstern

gruss

Geändert von EWeiss ( 3. Jan 2017 um 16:25 Uhr)
  Mit Zitat antworten Zitat
Slipstream
(Gast)

n/a Beiträge
 
#8

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 3. Jan 2017, 21:00
Danke für den Tip mit OnCloseQuery. Das hat mit ein paar zusätzlichen Statements gut geklappt !

gerkey
Dafür wurds ja auch erfunden, das OnCloseQuery, oder?
  Mit Zitat antworten Zitat
t.roller
(Gast)

n/a Beiträge
 
#9

AW: Programmabbruch über Windows-Fenster 'x' verhindern

  Alt 3. Jan 2017, 22:24
Man kann auch das ganze Geklicke "da oben" abfangen, wenn man will...
Delphi-Quellcode:
...
  protected
    procedure WMNCLBUTTONDOWN(var msg: TMessage); message WM_NCLBUTTONDOWN;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.WMNCLBUTTONDOWN(var msg: TMessage);
begin
if cbCLOSE.Checked then inherited; // NO CLOSE if deactivated / unchecked
// cbCLOSE kann man durch eine PW-Abfrage ersetzen, ALT-F4 muss geblockt werden
  if msg.wParam = HTCAPTION then
  begin
   Caption:= 'HTCAPTION'; Exit;//
  end;
  if msg.wParam = HTSYSMENU then
  begin
   Caption:= 'HTSYSMENU'; Exit;//
  end;
  if msg.wParam = HTCLIENT then
  begin
   Caption:= 'HTCLIENT'; Exit;//
  end;
  if msg.wParam = HTCLOSE then
  begin
   Caption:= 'HTCLOSE'; Exit;//
  end;
  if msg.wParam = HTMAXBUTTON then
  begin
   Caption:= 'HTMAXBUTTON'; Exit;//
  end;
  if msg.wParam = HTMINBUTTON then
  begin
   Caption:= 'HTMINBUTTON'; Exit;//
  end;
end;

Geändert von t.roller ( 3. Jan 2017 um 22:31 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort


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 22:09 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