AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

CanClose

Ein Thema von Luki206 · begonnen am 2. Dez 2013 · letzter Beitrag vom 2. Dez 2013
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: CanClose

  Alt 2. Dez 2013, 17:39
Dein Programm macht genau das, was du programmierst: Wenn du in deinem ButtonClick-Ereignis und in CanClose die Abfrage machst, ob das Programm geschlossen werden soll, dann erscheint die Abfrage auch zweimal. Das heißt, du hast es eben nicht so gemacht, wie von mir vorgeschlagen: Im Button-Ereignis steht nur: Close; drin. Alles andere regelst du in OnCloseQuery. Am besten du machst dir eine private Procedure, wo du alles reinschreibst, was beim Programmende ausgeführt werden soll. Drückt der Anwender dann Yes bei der Abfrage in CloseQuery, ob wirklich beendet werden soll, rufst du diese Procedure auf und setzt danach CanClose (in CloseQuery) auf True. Drückt der Anwender No, wird nichts ausgeführt, CanClose wird nicht auf True gesetzt und dein Programm läuft weiter.

Was genau verstehst du denn jetzt daran nicht?

Code gibt's diesmal keinen.

Eine Fehlerbeschreibung muß nicht zwingend eine Compilermeldung sein, sondern kann, wie von dir eben formuliert, auch eine Beschreibung des unerwünschten Verhaltens sein. Dagegen sagt "geht nicht" überhaupt nichts aus und ermöglicht auch keine Hilfestellung, ohne dir wieder alles aus der Nase ziehen zu müssen.
  Mit Zitat antworten Zitat
Luki206
(Gast)

n/a Beiträge
 
#2

AW: CanClose

  Alt 2. Dez 2013, 17:46
Jetzt geht es. ButtonClick = nur Close.
Danke.
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: CanClose

  Alt 2. Dez 2013, 17:51
Als weiteren Vorschlag würde ich die Prüfung mit dem "Großer Gott, WIRKLICH SCHLIEßEN !?!?!"-Dialog und dem Abschlussdialog ("Es wurden X Crêpes verkauft") in eigene Methoden auslagern, so dass es ungefähr so aussieht:

Delphi-Quellcode:
procedure TForm4.Button1Click(Sender: TObject);
begin
   self.Close();
end;

procedure TForm4.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   ZeigeAbschlussDialog();
end;

procedure TForm4.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
   if UserIstSichWirklichSicher() then
      CanClose := True
   else
      CanClose := False
   ;
end;
  Mit Zitat antworten Zitat
Perlsau
(Gast)

n/a Beiträge
 
#4

AW: CanClose

  Alt 2. Dez 2013, 18:07
in eigene Methoden auslagern, ...
Genau das hatte ich weiter oben bereits empfohlen. Aber unser Luki ist ja bereits zum nächsten Projekt gesprungen, für das er gerne fertige Konzepte und Codezeilen hätte.
  Mit Zitat antworten Zitat
Der schöne Günther

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

AW: CanClose

  Alt 2. Dez 2013, 18:25
Stimmt, hatte ich überlesen

Vielleicht ist die nächste Gruppenumarmung auch wieder überfällig
  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 14:55 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz