AGB  ·  Datenschutz  ·  Impressum  







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

Event abbrechen

Ein Thema von trashcandesign · begonnen am 25. Sep 2006 · letzter Beitrag vom 26. Sep 2006
Antwort Antwort
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#1

Event abbrechen

  Alt 25. Sep 2006, 14:42
Hi,

ich habe verschiedene Mask-Felder, in die je ein Datums-Wert eingetragen werden soll.
Im OnExit-Event überprüfe ich dann die Eingabe auf Richtigkeit.

Wenn ich aber das Feld nicht mit einem Tab verlasse, sondern zum Beispiel mit einem Klick auf einen anderen Button wird zwar auch diese Überprüfung durchgeführt, aber eben auch die den Button zugrunde liegende Funktion.
Wenn diese Funktion zum Beispiel 'schließen' ist, dann bekomme ich einen Hinweis, das das Eingegebene Datum nicht dem Format entspricht, aber direkt danach wird dann auch das Programm geschlossen.

Wie könnte ich dem Programm sagen, dass er bei einem falschen Wert nichts mehr machen soll?

Oh Gott, kann das einer verstehen? Wenn nich versuche ich es nochmal genauer und sinnvoller zu schreiben *g*
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: Event abbrechen

  Alt 25. Sep 2006, 15:50
Hallo,

ich würde die Eigenschaft Enabled des Button erst dann auf True setzen, wenn deine Bedingungen erfüllt sind.

Grüße vom marabu
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#3

Re: Event abbrechen

  Alt 26. Sep 2006, 07:04
Hi,

das Problem ist, dass ich viele verschiedene Felder habe, deren Werte nach dem Verlassen in eine Datenbank geschrieben werden. allerdings muss nicht jedes Feld ausgefüllt werden. Deswegen kann ich nicht sagen, der Button ist inaktiv bis das Feld gefüllt ist.

Gibt es nicht zufällig eine Window-Message, dass das Schließen der Applikation, bzw. die Aktion des Buttons abbricht?
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#4

Re: Event abbrechen

  Alt 26. Sep 2006, 07:10
Versuche es mal mit dem Ereignis OnCloseQuery() der Form.

Grüße vom marabu
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#5

Re: Event abbrechen

  Alt 26. Sep 2006, 07:48
Da das dynamisch sein soll kann ich im OnClose leider die Felder nicht auf Richtigkeit prüfen.
Also sowas nach dem Motto geht leider nicht:

if CheckField(TMaskEdit) then TForm(Hauptformular).Release
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#6

Re: Event abbrechen

  Alt 26. Sep 2006, 07:57
Wie wäre es mit einer Variable die du auf True setzt, wenn eine Aktion durchgeführt werden kann und auf False, wenn nicht. Ich glaube, du musst dir selbst erstmal klar werden, wann genau eine Aktion durchgeführt werden kann. Dann kannst du nach diesen Kriterien auch zB den Button enabled machen, oder nicht.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
trashcandesign

Registriert seit: 21. Feb 2006
Ort: Mühlhausen
187 Beiträge
 
Delphi XE2 Professional
 
#7

Re: Event abbrechen

  Alt 26. Sep 2006, 08:27
Dann müsste ich also beim OnEnter-Event eines jeden Edit-, Maskenfeldes eine Variable auf false setzen und dann, wenn ich die Form schließen, oder einen Button Drücken möchte überprüfen, ob ich die Variable nicht vielleicht wieder auf true setzen kann?

Hm.... müsste ich mal ausprobieren...
  Mit Zitat antworten Zitat
Benutzerbild von freak4fun
freak4fun

Registriert seit: 22. Sep 2004
Ort: Hannover
1.807 Beiträge
 
Delphi 10.2 Tokyo Starter
 
#8

Re: Event abbrechen

  Alt 26. Sep 2006, 16:21
Du könntest auch allen OnExit-Evnts die gleiche Methode zuweisen. In der Methode überprüfst du ALLE Werte. Zum Beispiel:
Delphi-Quellcode:
procedure GlobalOnExit;
begin
  Alles Richtig := (Wert1 = Richtig) and (Wert2 = Richtig);
end;
Und überall, wo es wichtig ist, ob alle Werte richtig sind, kannst du dann die Variable "AllesRichtig" abfragen.

MfG
freak
Christian
IT: Schließen Sie bitte das Fenster. User: Die Tür auch?
i++; // zaehler i um 1 erhoehen
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#9

Re: Event abbrechen

  Alt 26. Sep 2006, 17:26
Als Nachschlag zu meinem Beitrag #2 hier eine DemoForm, die das Konzept verdeutlicht. Drei Edit-Felder und jedes hat eine eigene Validierung. Fehlerhafte Eingaben werden farbcodiert und im tag property vermerkt, wo sie vom OnUpdate() Event der mit dem OKButton verknüpften Action ausgewertet werden. Andere Standardtechniken, wie shared events, lassen sich zusätzlich anwenden.

Grüße vom marabu
Angehängte Dateien
Dateityp: zip isvalid_168.zip (1,4 KB, 10x aufgerufen)
  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 01:18 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