Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   wie kann man verhindern in Edit leer zu lassen ? (https://www.delphipraxis.net/159038-wie-kann-man-verhindern-edit-leer-zu-lassen.html)

thomas2009 11. Mär 2011 15:51


wie kann man verhindern in Edit leer zu lassen ?
 
Hi
ich sehe keinen Fehler :
Delphi-Quellcode:
if (strToInt(Edit1.Text) < 10) or (Edit1.Text='') then begin
...
end;
Inkompatible String und Integer !

2. wie kann man verhindern in Edit leer zu lassen ?

lbccaleb 11. Mär 2011 15:53

AW: Was ist hier falsch ?
 
Sorry

DeddyH 11. Mär 2011 15:54

AW: Was ist hier falsch ?
 
Sicher, dass die Zeile gemeint ist?

mkinzler 11. Mär 2011 15:55

AW: Was ist hier falsch ?
 
Zitat:

Zitat von DeddyH (Beitrag 1087740)
Sicher, dass die Zeile gemeint ist?

Das habe ich mich auch gefragt

lbccaleb 11. Mär 2011 15:55

AW: wie kann man verhindern in Edit leer zu lassen ?
 
ohh da war ich wohl bissel zu schnell...
das falsch von mir:oops:

jobo 11. Mär 2011 16:02

AW: wie kann man verhindern in Edit leer zu lassen ?
 
Ich finde die Fragestellung falsch.

Einen Anwender sollte sich frei in einer Maske bewegen können. Wenn er nicht eintippt, was erwartet wird/ nötig wäre, um eine Aktion zu starten, so wird eben nur der Abbruch der Aktion freigegeben.

DeddyH 11. Mär 2011 16:04

AW: wie kann man verhindern in Edit leer zu lassen ?
 
Man könnte auch das auslösende Steuerelement (Button?) disablen, bis eine Eingabe erfolgt ist.

lbccaleb 11. Mär 2011 16:05

AW: wie kann man verhindern in Edit leer zu lassen ?
 
Zitat:

Zitat von thomas2009 (Beitrag 1087737)
Hi
ich sehe keinen Fehler :
Delphi-Quellcode:
if (strToInt(Edit1.Text) < 10) or (Edit1.Text='') then begin
...
end;
Inkompatible String und Integer !

2. wie kann man verhindern in Edit leer zu lassen ?

Dann auf jedenfall erstmal ne Längenangabe:

Delphi-Quellcode:
if (Length(Edit1.Text) < 10) or (Edit1.Text='') then begin
...
end;

DeddyH 11. Mär 2011 16:09

AW: wie kann man verhindern in Edit leer zu lassen ?
 
Wenn die vollständige Boolsche Auswertung nicht aktiv ist, kann man durch Umdrehen der Bedingungen eine Exception bei einem Leerstring ggf. verhindern, falls es darum geht.
Delphi-Quellcode:
if (Edit1.Text='') or (strToInt(Edit1.Text) < 10) then begin

alzaimar 11. Mär 2011 17:00

AW: wie kann man verhindern in Edit leer zu lassen ?
 
Die Vorgehensweise des Fragestellers ist zielführend bei dem Versuch, beim Anwender die Zornesrotintensität zu maximieren.

Ein Versuch, den Dialog über die 'Abbruch'-Taste scheitert, bis man etwas Sinnloses eintippt. Ein oft beobachteter Lapsus, für den man den Programmierer teeren und federn sollte.

Wie schon vorgeschlagen, sollte der OK-Button nur dann aktiviert sein, wenn alle Eingaben korrekt sind. Allerdings es für den Anwender kein unlösbares Rätsel werden, bis der Button endlich aktiviert ist ("Die Postleitzahl muss gültig sein und zur Stadt passen, wobei die Straße, falsch geschrieben, den OK-Button auch deaktivert").

Es ist durchaus legal, nur die nötigsten Prüfungen (Pflichtfelder müssen befüllt sein etc.) vorzunehmen und erst beim Drücken der OK-Taste eine ausführliche sematische Prüfung durchzuführen. Dann darf eine Fehlermeldung mit klaren Anweisungen erscheinen.

Sinnvoll haben sich auch Fehlertexte erwiesen, die z.B. unter dem Eingabefeld in rot angebracht sind (unsichtbar, wenn alles OK, sichtbar mit Hinweis, wenn das Feld verlassen wird, aber Fehler aufgetreten sind). Leider scheitert das oft am Platzmangel im Dialog.

Wahlweise können Eingabefelder auch speziell markiert sein, um anzuzeigen, das es sich um ein Pflichtfeld handelt, z.B. mit einem '*'... Auf dem Dialog sollte dann irgendwo der Hinweis enthalten sein "mit (*) markierte Felder sind Pflichtfelder".

Lob und eine beruhigende Entspanntheit des Anwenders sind Lohn für die Mühen, die sich der Programmierer beim Design und der Ausarbeitung wirklich ergonomischer Eingabedialoge macht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf