AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Form nach Prüfung schließen funktioniert nicht
Thema durchsuchen
Ansicht
Themen-Optionen

Form nach Prüfung schließen funktioniert nicht

Ein Thema von globetrotter77 · begonnen am 5. Nov 2009 · letzter Beitrag vom 6. Nov 2009
Antwort Antwort
Seite 1 von 2  1 2      
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#1

Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:18
Hallo zusammen!
Ich habe ein seltsames Problem, mit dem ich, wie ich meine, so noch nie konfrontiert wurde.

Im OnShow-Event eines Formulars, das ich mit ShowModal aufrufe, führe ich eine Prüfung durch, die unter bestimmten Bedingungen dazu führen soll, dass das Formular sofort wieder geschlossen wird.
Hierzu setze ich in diesem Fall

ModalResult:=mrCancel

Aber dies hat leider keinerlei Auswirkungen, das Formular wird trotzdem angezeigt und wartet auf Eingaben.
Wenn ich dagegen einen Schließen-Button betätige, passiert eigentlich genau das Gleiche:
Ich setze wieder

ModalResult:=mrCancel

und siehe da - diesmal wirkt es, und das Formular ist weg!

Woran kann das liegen?

Danke für jeden Tipp!
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:24
Überlege doch mal, was du da eigentlich machst. Du sagst Windows es soll dein Fenster anzeigen und gleichzeitig sagst du ihm er soll es schließen. Und warum machst du die Überprüfung nicht bevor du das Fenster überhaupt erzeugst bzw. anzeigst? Ich meine, wenn ich in mein Auto einsteige, dann gucke ich ja auch schon vorher, ob ich den Schlüssel habe und gucke nicht erst, wenn ich einsteige. Und selbst, wenn ich erst beim Einsteigen gucke, ob ich den Schlüssel habe, kann ich mich nicht gleichzeitig anschnallen und aussteigen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von mirage228
mirage228

Registriert seit: 23. Mär 2003
Ort: Münster
3.750 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:29
Schreib Dir eine eigene Methode als public ins Form, die ShowModal() aufruft und auswertet (oder halt entscheidet, ShowModal nicht aufzurufen). Die Rückgabe dieser Funktion kannst Du ja weiterhin als Integer machen, sodass du mrCancel etc. zurückgeben kannst.
David F.

May the source be with you, stranger.
PHP Inspection Unit (Delphi-Unit zum Analysieren von PHP Code)
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#4

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:34
@Luckie:
Da hast du natürlich recht!
Irgendwie scheint das keinen richtigen Sinn zu ergeben, aber es gab eben dennoch Gründe dafür.
Klar kann ich das auch anders machen, aber ich will eben auch verstehen, wieso kein Close funktioniert.
Und der funktioniert tatsächlich nicht, auch dann nicht, wenn man ihn direkt einprogrammiert.
So, und nun stelle man sich mal vor, dass beim Show irgendeine Aktion durchgeführt werden soll, die aus nicht vorhersehbaren Gründen nicht klappt - da wäre ja irgendeine Reaktion erforderlich, oder?
Und die wäre bei mir eben sofortiges Schließen gewesen.

Es bleibt also die Frage, wieso das nicht funktioniert!
Scheint ja irgendwie mit dem aktuellen Event zusammenzuhängen ...
  Mit Zitat antworten Zitat
Progman

Registriert seit: 31. Aug 2007
Ort: 99974 MHL
695 Beiträge
 
Delphi 10.1 Berlin Starter
 
#5

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:41
Im OnShow kann man einfach kein Close aufrufen, genausowenig wie man im OnClose Show aufrufen kann.
Das passt einfach nicht
Karl-Heinz
Populanten von Domizilen mit fragiler, transparenter Aussenstruktur sollten sich von der Translation von gegen Deformierung resistenter Materie distanzieren!
(Wer im Glashaus sitzt sollte nicht mit Steinen werfen)
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#6

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:43
Zitat von Progman:
Im OnShow kann man einfach kein Close aufrufen, genausowenig wie man im OnClose Show aufrufen kann.
Das passt einfach nicht
Das wäre natürlich eine Erklärung, wenn das per definitionem ausgeschlossen ist.
Es bleibt dann allerdings die Frage, ab wann man Close aufrufen kann ... weißt du da was Genaueres?
  Mit Zitat antworten Zitat
Benutzerbild von RWarnecke
RWarnecke

Registriert seit: 31. Dez 2004
Ort: Stuttgart
4.408 Beiträge
 
Delphi XE8 Enterprise
 
#7

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:43
Wenn ich ein Fenster mit ShowModal aufrufe, nutze ich das nur dazu um Werte zu überprüfen oder zu ändern. Der eigentliche Ablauf, wie Überpüfungen, Berechungen u.s.w. werden in der Hauptunit gemacht, die das Fenster mit ShowModal aufruft. Dadurch komme ich erst garnicht in die Verlegenheit, irgendwelche Prüfroutinen in die Unit des ShowModal-Fenster zu schreiben.
Bei sind die die ShowModal-Fenster Units in 99% der Fälle nicht größer als die Unit selber mit der Form und dessen Kommponenten.

Edit:
Zitat von globetrotter77:
Es bleibt dann allerdings die Frage, ab wann man Close aufrufen kann ... weißt du da was Genaueres?
Ich nehme mal an vielleicht im OnPaint oder OnResize. Musste mal ausprobieren.
Rolf Warnecke
App4Mission
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

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

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:44
Zitat von globetrotter77:
aber ich will eben auch verstehen, wieso kein Close funktioniert.
Da gibt es nichts zu verstehen. Es geht einfach nicht. Genauso wenig wie es nicht geht, dass ich durch die geschlossene Autotür den Schlüssel ins Zündschloss stecken kann.

Zitat:
Und der funktioniert tatsächlich nicht, auch dann nicht, wenn man ihn direkt einprogrammiert.
Du glaubst uns nicht, oder?

Zitat:
So, und nun stelle man sich mal vor, dass beim Show irgendeine Aktion durchgeführt werden soll, die aus nicht vorhersehbaren Gründen nicht klappt - da wäre ja irgendeine Reaktion erforderlich, oder?
Klar, aber du kannst diese Aktion auch vor das Erzeugen des Fensters verlegen. Es gibt keinen Grund dies im OnShow Ereignis zu tun.

Zitat:
Es bleibt also die Frage, wieso das nicht funktioniert!
Scheint ja irgendwie mit dem aktuellen Event zusammenzuhängen ...
Siehe oben.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#9

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:51
Zitat von RWarnecke:
Wenn ich ein Fenster mit ShowModal aufrufe, nutze ich das nur dazu um Werte zu überprüfen oder zu ändern.
Nun gut, das ist aber auch eine philosophische Frage ... ganz nebenbei bemerkt sind fast alle Teile eines Programms dazu da, um Werte zu überprüfen oder zu ändern ...
Ich fand bisher ShowModal immer dann ganz gut, wenn es z.B. darum ging, eine Auswahl zu treffen, weil dann tatsächlich eine klare Kapselung des untergeordneten Problems stattfand ...
wenn jetzt allerdings der Benutzer sich etwas spät entscheidet, doch keine Auswahl zu treffen, dann muss ich doch irgendwie reagieren dürfen, oder?
  Mit Zitat antworten Zitat
globetrotter77

Registriert seit: 16. Jan 2009
Ort: Nürnberg
236 Beiträge
 
Delphi 10.3 Rio
 
#10

Re: Form nach Prüfung schließen funktioniert nicht

  Alt 5. Nov 2009, 23:54
Zitat von Luckie:
Du glaubst uns nicht, oder?
Unsinn! Natürlich glaube ich euch, sonst wäre ich ja nicht hier, aber es irritiert mich trotzdem, wieso es nicht geht ... irgendwie bilde ich mir ein, dass es hierfür einen Weg geben müsste
  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 23:02 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