Moin, Moin
wollte eine Abfrage machen, ob der Benutzer einen richtigen Wert eingegeben hat. Die Max Stellenanzahl hab ich schon durch das Eingabefenster begrenzt. Nun soll es nur Möglich sein Werte zwischen 0 bis 255 einzugeben. Dabei sind logischerweise keine Buchstaben... zugelassen, sondern nur 0-9.
Wollte mal Fragen, ob das irgendjemand mit try...except.. end macht.
Hab bei euch immer nur die Lösungen mit Key press gesehen.
Delphi-Quellcode:
procedure TfrmFahrzeugEingabe.CheckZiffern(var key : Char);
begin
if not (key in ['0' .. '9', ',' ,#8,#9]) then
key := #0;
end;
Wollte aber gerne am ende, wenn die Werte mit einem Button.click eingelesen werden, alle meiene Werte checken. Finde die Idee mit Key press nicht so doll, man kann sich ja schließlich mal vertippen
.
Delphi-Quellcode:
try
begin
EditLow := StrToInt(SuchEdit[i,0].Text);
EditHigh := StrToInt(SuchEdit[i,1].Text);
end
except
begin
Application.MessageBox('Bitte achten Sie darauf, dass Sie nur Zahlen eingeben',PChar('Eingabefehler'),0);
SuchEdit[i,0].clear;
SuchEdit[i,1].clear;
end;
end;
Das ist ja irgendwie doof. Gefällt mir nicht so.
Habs jetzt mit if versucht, aber leider häng ich da an den Vergleichsbedingungen.
Delphi-Quellcode:
var
i,n :Integer;
wert : string;
begin
for i:=0 to 8 do
begin
setlength(Wert,3);
Wert := SuchEdit[i,0].Text;
for n := 0 to length(wert) do
if wert[n] = ['0','1'] then
EditLow := StrToInt(SuchEdit[i,0].Text);
end;
end;
Die If Abfrage mit mehreren Werten funktioniert nicht richtig. Mit einem Wert kann ich vergleichen, aber nicht mit ['0','1'] oder ['0'..'9'], da bekomm ich immer ne Compilermeldung "Inkompatible Typen"
Weiß da jemand was??