AGB  ·  Datenschutz  ·  Impressum  







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

Akzeptanz des Wertes im TField eines TDataSet

Ein Thema von Jasocul · begonnen am 3. Feb 2023 · letzter Beitrag vom 6. Feb 2023
Antwort Antwort
Seite 2 von 2     12   
Benutzerbild von Jasocul
Jasocul

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

AW: Akzeptanz des Wertes im TField eines TDataSet

  Alt 6. Feb 2023, 06:49
Von mir auch ein Sorry.
Du hast bei mir in dem Moment das Fass zum überlaufen gebracht, weil ich bereits fast 3 Arbeitstage verbraten habe, um diesen Fehler zu beheben. Dazu mit dem QuantumGrid, das derartig komplex ist, dass ich mich bei der Fehlersuche immer wieder in die falsche Richtung bewegt habe.

Ich kämpfe hier in diesem Zusammenhang gegen einen konzeptionellen Fehler. In diesem speziellen Fall wird das Exit eines anderen Eingabefeldes verwendet, um Fachlogik abzubilden. Dazu muss ich hoffentlich nichts weiter sagen. Jedendfalls wird das heute noch für Diskussionen sorgen.

ShowMessage im Form.OnClose/OnDestroy ist auch so ein geiler Fall. (hier nur andersrum, weil man sich gern wundern darf, wenn der Dialog oft nahezu sofort wieder geschlossen wird, da das gehende Fenster ihn mit nimmt)
Dafür ist doch OnCloseQuery da. Ich wäre gar nicht auf die Idee gekommen, sowas im OnClose oder OnDestroy zu machen. Deswegen hatte ich es auch ins OnValidate gelegt, damit man eine Chance hat, den weiteren Ablauf zu steuern/abzubrechen. Ich kann mich nicht mal erinnern, wann ich das letzte Mal Application.ProcessMessages eingesetzt habe. Das muss zu Zeiten gewesen sein, als die Progressbar sich beim Step noch nicht selbst refresht hat.

Es geht selten gut aus, wenn sich in komplexere Abläufe, welche eine bestimmte Reihenfolge haben müssen,
plötzlich Pausen und die Verarbeitung von Messages ala Repaint, Timern, Tastatur, Maus usw. reindrängeln vordrängeln.
Oh ja, eine MessageBox im OnPaint genau an der Stelle, wo gerade ein Repaint erfolgt, kommt immer gut.

Der Stacktrace ist auch nicht "was aufgerufen wurde", sondern "wie es zurück geht".
Ich interpretiere das meisten also "von wo komme ich denn her, um hier gelandet zu sein". Dass die Rücksprungadresse drin steht sollte klar sein. Ist ja schließlich der Stack.

Auch Fehler anzeigen mit ShowMessage rächt sich nicht nur hier, sondern auch anderswo,
z.B. wenn man versucht eine Funktion von wo anders aufzurufen (Code wiederverwenden), da mit try-except versucht auf Fehler zu reagieren, um optional was Anderes zu machen.

Außer wenn in einer wirklich endgültigen Funktion ein Fehler ausgegeben werden muß, um anschließend weiter zu arbeiten,
am Besten grundsätzlich Fehler immer per RAISE abgeben.
Im aktuellen Fall bekomme ich von der Funktion ja ein Boolean zurück, ob es funktioniert hat. Die Message ist dann nur eine Info für den Anwender und der Rest ist wieder korrekt gesteuert. Ein Raise kann ich nicht ohne weiteres machen, da dann das hausinterne Exceptionhandling greift und das ist nicht wirklich optimal (Details spare ich mir).
Peter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:48 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