Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Aktion beim Fokuswechsel durchführen (https://www.delphipraxis.net/125354-aktion-beim-fokuswechsel-durchfuehren.html)

HeikoAdams 4. Dez 2008 15:32


Aktion beim Fokuswechsel durchführen
 
Hallo,

in einer unserer Anwendungen soll einigen Masken beim Verlassen jedes Eingabefeldes geprüft wernde, ob das zugewiesene Datenbankfeld als Pflichtfeld gekennzeichnet ist.

Der Einfachheit halber wollte ich diese Prüfung im Ahnen der entsprechenden Masken durchführen, da der OnExit-Event zum Teil noch für andere Aktionen benötigt wird. Ich habe jedoch bislang keine Möglichkeit gefunden, auf das Drücken von Tab oder den Wechsel des Fokus zu reagieren.

Hat hier jemand eventuell einen Tipp für mich, wie ich das bewerkstelligen kann??

DeddyH 4. Dez 2008 15:40

Re: Aktion beim Fokuswechsel durchführen
 
Versuch mal, in der entsprechenden Maske auf CM_FOCUSCHANGED zu reagieren.

Thomas Feichtner 4. Dez 2008 15:50

Re: Aktion beim Fokuswechsel durchführen
 
Hallo!

Von den Edits von DevExpress gibt es ein OnValidate. Hier kannst du solche Sachen erledigen.

HeikoAdams 4. Dez 2008 16:02

Re: Aktion beim Fokuswechsel durchführen
 
Zitat:

Zitat von DeddyH
Versuch mal, in der entsprechenden Maske auf CM_FOCUSCHANGED zu reagieren.

Das ist nicht ganz das, was ich suche, da CM_FOCUSCHANGED zu spät ist.

shmia 4. Dez 2008 16:30

Re: Aktion beim Fokuswechsel durchführen
 
Zitat:

Zitat von HeikoAdams
in einer unserer Anwendungen soll einigen Masken beim Verlassen jedes Eingabefeldes geprüft wernde, ...

Das würde ich nicht empfehlen; manche Benutzer werden schimpfen.
Nicht jeder Benutzer (da gehöre ich auch dazu) möchte die Pflichtfelder in der Reihenfolge ausfüllen, in der die Felder betreten werden.
Der Benutzer muss sich frei und ungestört zwischen den Feldern bewegen können.

Angenommen es gibt eine EMail, aus der der Benutzer über Copy & Paste verschiedene Informationen übernehmen möchte.
Er markiert die Kundennummer (Pflichtfeld) in der EMail und wechselt in deine Anwendung und klickt aus Versehen auf die Telefonnummer (auch Pflichtfeld).
Immer wenn er die Telefonnr verlässt kommt die Meldung "Telefonnr. ist Pflichtfeld. Bitte eingeben !".
Nervig - der Benutzer weiss doch, dass er die Telefonnr ausfüllen muss, er will es aber später tun, weil er im Moment die Kundennummer in der Zwischenablage hat.

Richtige Vorgehenweise:
1.) beim Posten des Datensatz prüfen, ob alle Pflichtfelder ausgefüllt wurden
2.) alle leeren Pflichtfelder in einer Liste sammeln und dem Benutzer eine Sammelfehlermeldung anbieten
Code:
folgende Pflichtfelder müssen noch ausgefüllt werden
Anschrift - Strasse
Telefonnummer
Kontonummer
3.) als zusätzlichen Komfort kann man dann den Focus auf das 1. leere Pflichtfeld setzen
Zusätzlich kann man die Farbe aller nichtausgefüllter Pflichtfelder auf Rot setzen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 08:09 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