Autor Beitrag
b43ck3r
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Di 12.10.04 20:15 
hoi leute :D
programmiere erst seit kurzer zeit mit delphi und hab ein paar kleine fragen
um an meinen programmen rumzufeilen da ich in den tutorial nix gefunden habe:

wenn ich zb ein edit feld habe und nur zahlen zwischen 1-10 eingegeben werden dürfen,
wie verhindere ich dann das jemand zb 12 eingibt oder auch einen buchstaben?
im weiteren wollte ich wissen wie ich es anstelle dass er mir eine showmessage
gibt wenn ich garnix in das feld eingebe...

grüße und danke schonmal im vorraus... :wink:


Zuletzt bearbeitet von b43ck3r am Mi 13.10.04 18:25, insgesamt 1-mal bearbeitet
karahead
Hält's aus hier
Beiträge: 7



BeitragVerfasst: Mi 13.10.04 16:16 
Hi ich versuch dir mal zu Helfen. :D
ausblenden Quelltext
1:
2:
3:
4:
5:
Wenn du zahlen zwischen 1 und 10 eingeben kannst dann kannst du auch zwangsläufig die Zahl 12 eingeben. 
1. Eingabe: 1
2. Eingabe: 2
--------------
12


Wenn du nur zahlen als eingabe haben willst dann hier mein Vorschlag:
ausblenden Delphi-Quelltext
1:
2:
3:
4:
procedure TForm1.Edit1KeyPress(sender: TObject; var key: Char);
begin
  if not (key in [#8, #9, #48 .. #57]) then key:=#0;
end;


Und die Überprüfung ob etwas eingegeben wurde oder nicht kannst du auf verschiedene Wege lösen:
1. Die Länge des Strings von Edit1.Text prüfen. Wenn 0 dann ShowMessage
2.
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
var s:String;
begin
  s:= Edit1.Text;
  if s='' then Fehlermeldung
end;


So würd ich das lösen. Hoffe konnte dir etwas helfen.
Tino
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Veteran
Beiträge: 9839
Erhaltene Danke: 45

Windows 8.1
Delphi XE4
BeitragVerfasst: Mi 13.10.04 17:09 
@b43ck3r: Bitte ändere deinen Beitrag-Titel. "Ein paar Anfängerfragen" hilft keinem denn dadurch kann der Leser nicht das eigentliche Thema ausmachen. Also: Bitte oben auf Edit klicken und einen sinnvollen Titel wählen. Danke! ;-)

Gruß
Tino
jasocul
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 6395
Erhaltene Danke: 149

Windows 7 + Windows 10
Sydney Prof + CE
BeitragVerfasst: Mi 13.10.04 18:24 
In Ergänzung zu karahead:
Im KeyPress-Ereignis kannst du natürlich weiter Dinge prüfen.
- Die Länge der Eingabe (mehr als zwei Ziffern sind nicht erlaubt).
- Das erste Zeichen. Wenn jetzt das zweite kommt, muss das erste eine eins sein und das zweite eine Null.

Da lässt sich also schon noch einiges prüfen. Ungültige Eingaben kannst du dann mit key := 0 abweisen. Besser ist dann eine zusätzliche Fehlermeldung.
b43ck3r Threadstarter
Hält's aus hier
Beiträge: 10



BeitragVerfasst: Mi 13.10.04 18:28 
gut...

wie würde demnach denn der befehl lauten wenn
ich für mein edit1 feld nur 1 und 2 stellige zahlen haben will, keine darüber und keine leere eingabe?

danke schonmal
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 01.11.04 17:34 
du kannst bei maxlenght schon mal 2 eingeben, dann sind schonmal nur 2 stellige
zahlen bzw. buchstaben möglich.
Wie du buchstabe rausfilterst weißt du ja schon, wenn du jetzt noch willst, dass
man nur zahlen von 1 - 10 eingeben kann, dann würde ich diesen code hier nehmen:

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
procedure TForm1.Edit1KeyPress(Sender: TObject;
  var Key: Char);
begin
  if not (key in ['0'..'9',#8]) then     
    key:=#0;
end;

procedure TForm1.Edit1Change(Sender: TObject);
begin
if 10 < strtoint (edit1.text) then edit1.text:= inttostr(10);     
end;

bei on keypress wird geprüft, ob die gedrückte taste eine ziffer von 0 - 9
oder die Backspace taste ist, falls nicht, ist die Taste 0, also nichts.
bei on editchange wird jetzt geprüft, ob die eingegebene zahl größer als 10
ist, falls dies der fall ist, ist die zahl automatisch 10

Ich hoffe ich konnte dir helfen :wink:
F34r0fTh3D4rk
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 5285
Erhaltene Danke: 29

Win Vista (32), Win 7 (64)
Eclipse, SciTE, Lazarus
BeitragVerfasst: Mo 01.11.04 17:36 
:?: :!:

und zu deiner leeren angabe, wann soll die dann abgefragt werden ?

wenn man einen Button drückt ?