AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein DBEdit mitteilen das Eingabe komplett
Thema durchsuchen
Ansicht
Themen-Optionen

DBEdit mitteilen das Eingabe komplett

Ein Thema von Hausmarke · begonnen am 13. Jan 2014 · letzter Beitrag vom 13. Jan 2014
Antwort Antwort
Perlsau
(Gast)

n/a Beiträge
 
#1

AW: DBEdit mitteilen das Eingabe komplett

  Alt 13. Jan 2014, 14:50
Das Aufrufen der Methode die das Feld berechnet war nicht das Problem.
Hat ja auch keiner behauptet.

Vielmehr ist das Datenfeld zum Zeitpunkt der Berechnung leer, da das DBEdit die Eingabe noch nicht an das Datenfeld weitergeleitet hat. Hierbei sollte man erwähnen das die Berechnungsmethode im Datenmodul durch ein OnChange eines Datenfeldes ausgelöst wurde. Was jetzt jedoch durch das OnExit des DBEdits ausgelöst wird.
Meine DBEditfelder ändern ihre Farbe, sobald sie zur Eingabe bereit sind (Dataset.Edit) und wieder zurück, sobald die Eingabe beendet wurde (Dataset.Post).

Es geht doch offenbar darum, ein anwender- bzw. benutzerfreundliches Handling zu implementieren. Da halte ich es für etwas gewöhnungsbedürftig, eine Eingabe durch das Verlassen des Feldes abzuschließen: Der Anwender muß also irgendwo anders hinklicken, um seine Eingabe zu bestätigen und die Verarbeitung auszulösen. Dann könntest du ihm auch gleich einen Button präsentieren oder eben ganz auf diesen ganzen Firlefanz verzichten, das DBEdit beim Enter zur Eingabe vorbereiten (Dataset.Edit; DBEdit.ReadOnly := False; DBEdit.Color := clGreen; etc.) und beim Drücken der Entertaste die Eingabe auf Korrektheit überprüfen und gegebenfalls abschließen (Dataset.Post; DBEdit.ReadOnly := True; DBEdit.Color := clWhite; etc.). Ist die Eingabe nicht korrekt, machst du entweder ein Dataset.Cancel oder beläßt die Datenmenge im Editiermodus, wobei du dem Anwender natürlich seine Fehleingabe anzeigen mußt. Das wäre eine konkrete und begreifbare Vorgehensweise für den Anwender; dagegen ist "irgendwo hinklicken zu müssen" etwas vage und läßt manchen Anwender dann auch mal außerhalb des Formulars oder sonstwohin klicken, was zu Fehlverhalten der Anwendung führen könnte. Du kannst z.B. auch noch auf die Betätigung der ESC-Taste prüfen, womit der Anwender signalisieren kann, daß er die Eingabe abzubrechen wünscht. Beim Verlassen des Feldes ohne vorherige Bestätigung mit Enter verwirfst du die Eingabe (Dataset.Cancel).
  Mit Zitat antworten Zitat
Hausmarke

Registriert seit: 5. Apr 2013
Ort: Sachsen
47 Beiträge
 
Delphi 2007 Professional
 
#2

AW: DBEdit mitteilen das Eingabe komplett

  Alt 13. Jan 2014, 15:41
Das Aufrufen der Methode die das Feld berechnet war nicht das Problem.
Hat ja auch keiner behauptet.
Beim absenden dachte ich mir schon das diese Formulierung etwas unglücklich gewählt ist.

Du hast recht mit dem was du sagst und ich hatte es auch genau so vorher. Dennoch musste ich es anders lösen.
Da dieses Eingabefeld nicht am Ende des Formulars steht und noch Pflichtfelder folgen, sollte es in diesem Fall für den User kein Problem darstellen bzw. er sollte sich nicht animiert sehen irgend wohin zu klicken.

Während der Eingabe werden andere Felder aktualisiert sodass der User sieht wie seine Eingabe den Datensatz verändert. Nur kann es sein das die Berechnung des laufenden Saldo dazu führen, das der Datensatz gewechselt werden muss, was zwangsläufig zu einem Post führt. Bei bestehenden Datensätzen ist das kein Problem, ist der Datensatz jedoch Neu, soll er nicht zwischen drin, sondern erst bei Abschluss der Eingabe speichern.

Geändert von Hausmarke (13. Jan 2014 um 15:53 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 09:33 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