Moin !
Eine kleine Hilfe hab ich auch noch anzubieten.
Die Funktion prüft auf Zahlen (brauchte ich selber). Wenn du das jetzt soweit abänderst, daß
auch Komma, Semikolon, etc. zu den gültigen Zeichen gehören, dann brauchst du nur auf False als Rückgabewert zu reagieren.
Denn Quellcode mit Modifikation:
Zitat:
function acceptableInt(SomeChar:String):Boolean;
var cmpArray:Array of String;
I:Byte;
Status:Boolean;
begin
Status:=True;
setLength(cmpArray,10); <-- Wichtig ! Momentan für 10 Zeichen !
cmpArray[0]:='0';
cmpArray[1]:='1';
cmpArray[2]:='2';
cmpArray[3]:='3';
cmpArray[4]:='4';
cmpArray[5]:='5';
cmpArray[6]:='6';
cmpArray[7]:='7';
cmpArray[8]:='8';
cmpArray[9]:='9';
For I:=1 to length(SomeChar) do // Beginnt bei 1, da String
begin
if (cmpArray[0]=SomeChar[I]) OR
(cmpArray[1]=SomeChar[I]) OR
(cmpArray[2]=SomeChar[I]) OR
(cmpArray[3]=SomeChar[I]) OR
(cmpArray[4]=SomeChar[I]) OR
(cmpArray[5]=SomeChar[I]) OR
(cmpArray[6]=SomeChar[I]) OR
(cmpArray[7]=SomeChar[I]) OR
(cmpArray[8]=SomeChar[I]) OR
(cmpArray[9]=SomeChar[I]) then
begin
// Keine Anweisung nötig, da OK // Bei dir dann halt Falsch
Break; // Da ja falsch bei dir ...
end
else
begin
Status:=False;
//Application.MessageBox('Kein gültiger Integerwert','Fehler'); <--- Für dich ohne Belang
//Break;
end;
end;
if Status=False then
begin
Result:=False
end
else
begin
Result:=True;
end;
end; // Funktionsende
Mir ist bewußt, daß es garantiert einfacher geht.