Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi TEdit-Feld MUSS einen Wert enthalten!! (https://www.delphipraxis.net/840-tedit-feld-muss-einen-wert-enthalten.html)

MathiasSimmack 16. Sep 2002 06:46

Re: TEdit-Feld MUSS einen Wert enthalten!!
 
Zitat:

Zitat von m-werk
Klingt gut, nur wie mache ich das genau?

:? Du wirst doch wohl wissen, wie man das von Luckie vorgeschlagene Dummy-Datum in die Datei schreibt, oder? Und wenn du die Datensätze anzeigen lässt, dann musst du doch nur prüfen, ob das jeweilige Datum mit diesem Dummy-Datum identisch ist. Oder habe ich da jetzt was nicht mitbekommen? Oder du? ...

Zitat:

Hi Leute, ich habe einige Edit-Felder in meinem Programm und bei einem möchte ich es so machen, dass der User aufgefordert wird, in dieses etwas zu schreiben.

(...)

Wenn der User nun den Datensatz speichern möchte, dann soll überprüft werden, ob das TEdit3-Feld einen Wert enthällt oder nicht. Wenn kein Wert drinn steht, dann soll eine MessageBox erscheinen mit der Aufforderung, dass der User einen Geburtstag eingeben MUSS.
Wie wär´s denn mit folgender Idee: die Datensätze werden doch bestimmt erst gespeichert, wenn der Anwender auf einen Button klickt oder so?! Dann mach doch den Buttonstatus vom Vorhandensein von einer Eingabe abhängig.
Code:
Button1.Enabled := (Edit3.Text <> '');
Das gehört ins "OnChange"-Ereignis von "TEdit3", dann hast du eine Echtzeitprüfung, die den Button aktiviert oder eben wieder deaktiviert. A n der Stelle könnte (!) man auch bereits ansetzen und die Eingabe mit dem erforderlichen Datumsformat vergleichen, so dass bei einer Fehleingabe der Button ebenfalls nicht aktiviert wird.

Ich ahne, was jetzt kommen wird:
Zitat:

Zitat von m-werk
Klingt gut, nur wie mache ich das genau?

:wink:

Luckie 16. Sep 2002 06:55

Wenn er den Vorschlag mit dem Dummydatum nimmt, dann ist das aber überflüssig, denn genau das wollen wir ja vermeiden. :wink:

MathiasSimmack 16. Sep 2002 09:15

Noch mal langsam, Luckie :twisted: -

Wenn das Geburtsdatum nicht eingetragen ist, dann wäre der Button nach meiner Idee deaktiviert und kann überhaupt nicht angeklickt werden. Auf die Weise kann auch kein Dummydatum eingetragen werden und die Speicherung eines evtl. leeren Feldes findet gar nicht erst statt.

So hatte ich das gemeint. :)

Luckie 16. Sep 2002 09:18

Dann wird der Benutzer aber wieder gezwungen ein falsches datum einzugeben, sonst geht es nicht weiter. :(

Ich wollte dass, wenn das Feld leer bleibt das Programm ein Dummydatum eingibt, welches beim Anzeigen unterdrückt wird.

MathiasSimmack 16. Sep 2002 09:28

Zitat:

Zitat von Luckie
Dann wird der Benutzer aber wieder gezwungen ein falsches datum einzugeben, sonst geht es nicht weiter.

Ist richtig, lässt sich aber z.B. mit dem TMaskEdit und einer Datumsmaske umgehen, weil du da keine andere Möglichkeit hast, als das Format einzuhalten. Und dann gibt´s da ja noch das "OnChange"-Event, in dem du das Format auch schon mal prüfen kannst.

Zitat:

Ich wollte dass, wenn das Feld leer bleibt das Programm ein Dummydatum eingibt, welches beim Anzeigen unterdrückt wird.
Das verstehe ich schon, lieber Luckie. :) - Aber was will eigentlich m-werk? :wink:

btw: Ich orientiere mich bei solchen Dingen aber lieber an professioneller Software, die Buttons usw. erst aktiviert, wenn die entsprechenden Bedingungen erfüllt sind. Sagen wir als kleines Beispiel:

Eine Adressdatenbank (:roll:) nutzt eine CHM-Hilfedatei über den "ShellExecute"-Befehl. Das wird unter Win95 und NT4 ohne Html-Help-Update nicht klappen. Der Befehl ist aber dennoch verfügbar und kann ausprobiert werden.
Mit der Html-Help-API von den JEDIs kann man allerdings mit einer Bool-Variable prüfen, ob die CHM-Hilfe überhaupt möglich ist und den Befehl abhängig davon aktivieren oder deaktivieren.

Hat zwar nichts mit dem Thema zu tun, verdeutlicht aber den Weg, den ich versuche zu gehen.


Aber mal was anderes -
Was bedeutet
Zitat:

falsches datum
in dem Zusammenhang? Wenn ich als Geburtsdatum z.B. den 29. Februar 2379 eingebe, dann ist das Datumsformat korrekt - nur es liegt in der Zukunft. 8) Reagiert das Programm eigentlich auf solch offensichtlichen Unsinn?

Luckie 16. Sep 2002 09:32

Redest du von einer bestimmten Adressdatenbank? :angle2:

MathiasSimmack 16. Sep 2002 11:10

Äh, ... nein, das war nur ein fi(c)ktives Beispiel. :wink:

Luckie 16. Sep 2002 11:19

Na dann bin ich aber beruhigt. :mrgreen:

Hansa 16. Sep 2002 11:48

Hallo Leute,

habe so ein ähnliches Problem. Das hier jetzt mit dem Datum habe ich so gelöst : Bei einem neuen Datensatz belege ich die Felder mit einem Datum, das es nicht gibt. Das mit 1899 ein guter Vorschlag. Hab es aber umgekehrt gemacht. Nehme MaxDate (Konstante), glaube es ist der 31.12.2078. Ist so etwas in Delphi nicht schon vordefiniert?

Jetzt aber meine Frage : Bei mir soll ein nicht gefülltes Editfeld auch nicht verlassen werden, außer in einem Fall, wenn der ENDE Button gedrückt wird. Habe hierfür Edit1.Setfocus verwendet, solange bis etwas drin steht. Weiß der User aber gar keinen Wert, wird er gezwungen irgendeinen einzugeben, um dann ENDE zu clicken. Andernfalls kommt er nicht dran.

Gefällt mir nicht besonders. Der ENDE Button ist eigentlich dafür gedacht, diesen Programmteil zu verlassen.

Gruß
Hansa

City Light 18. Sep 2002 10:29

Hallo Hansa!

Was soll denn in deiner Edit für Wert eingeben werdern?


Alle Zeitangaben in WEZ +1. Es ist jetzt 12:24 Uhr.
Seite 2 von 3     12 3      

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