Einzelnen Beitrag anzeigen

rasi

Registriert seit: 14. Feb 2005
Ort: Regensburg
4 Beiträge
 
Delphi 2006 Enterprise
 
#5

Re: Prüfen, ob Edit nur aus Zahlen besteht

  Alt 19. Dez 2005, 21:38
Hallo,

hier noch eine Variante von mir:

Delphi-Quellcode:
function CheckNumericAndColorValue(s:string):boolean;
var
  i : integer;
  NumOk,
  ColOk : boolean;
begin
  NumOk:=True;
  ColOk:=True;

  // prüfen ob Eingabe im Bereich 0..9
  for i:=1 to length(s) do
  begin
    if not (s[i] in ['0'..'9']) then
    begin
      NumOk:=False;
      showmessage('Ungültiges Zeichen im Eingabe Feld!');
      break;
    end;
  end;

  // wenn Eingabe ok dann prüfen ob Zahl im Bereich 0..$FFFFFF (=16777215 dezimal)
  if NumOk and ((StrToInt(s)<0) or (StrToInt(s) > $FFFFFF)) then
  begin
    ColOk:=False;
    showmessage('Zahl liegt außerhalb des gültigen Farbwertes!');
  end;

  Result:=NumOk and ColOk; // gibt True zuück wenn beides in Ordnung war!
end;
Daß break im 1. if-Zweig dient dazu, bei mehreren "falschen" Zeichen im Edit-Feld nur einmal die Fehlermeldung auszugeben.

Der 2. if-Zweig wird nur dann ausgeführt wenn der 1. ok war.
Soviel ich weiß muß die Farbe im Bereich von 0..16777215 liegen (16777215=$FFFFFF in Hexadezimal) liegen.
Also Frage ich einfach nur diesen Bereich ab.

Du mußt nur darauf achten daß die Zahleneingabe im Edit-Feld den int64 Wertebereich nicht überschreitet,
da es sonst bei der StrToInt-Funktion zu einer Fehlermeldung kommt.

int64 Wetebereich:
+9223372036854775807 (=$7FFFFFFFFFFFFFFF hex),
-9223372036854775808 (=$8000000000000000 hex).


Ich hoffe, Dir geholfen zu haben
  Mit Zitat antworten Zitat