AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Prüfen, ob Edit nur aus Zahlen besteht
Thema durchsuchen
Ansicht
Themen-Optionen

Prüfen, ob Edit nur aus Zahlen besteht

Ein Thema von Chrissi91 · begonnen am 19. Dez 2005 · letzter Beitrag vom 5. Jul 2008
Antwort Antwort
Seite 1 von 2  1 2      
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#1

Prüfen, ob Edit nur aus Zahlen besteht

  Alt 19. Dez 2005, 19:30
Hallo ,

mit dem hier, wollte ich prüfen, ob sich auch nur Zahlen im Editfeld befinden:

Delphi-Quellcode:
for i:=1 to length(edit1.text) do
   begin
    if copy(edit1.Text,i,1) <> '0or '1or '2or '3or '4or '5or '6or '7or '8or '9then showmessage('Die Angaben sind ungültig!');
   end;
Aber er meckert wegen den vielen OR's.

Ich glaube, mal dies gesehen zu haben [0..10], aber wie geht das?

Außerdem möchte ich gerne prüfen, ob die Zahlen (Dezimalzahlen) als Farbwerte gültig sind. Beispiel: 67564312 ist als Dezimalzahl für Farbwerte gültig, aber 56578678965984093 nicht

Ich hoffe, ich habe mich verständlich genug ausgedrückt .
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#2

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

  Alt 19. Dez 2005, 19:35
Hi !
Aus meiner Sammlung:
Delphi-Quellcode:
function IsNumeric(s:String):Boolean;
var i:Integer;
begin
  Result:=False;
  for i := 1 to Length(s) do
    if (s[i] > '9') or (s[i] < '0') then exit;
  Result:=True;
end;
Otto
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#3

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

  Alt 19. Dez 2005, 19:56
Oder so :

Delphi-Quellcode:
function IsNumeric(s:String):Boolean;
var i:Integer;
begin
  Result:=False;
  for i := 1 to Length(s) do
    if not (s[i] in ['0'..'9']) then exit;
  Result:=True;
end;
oder so (einschließlich Prüfung auf 24 Bit RGB-Werte)

Delphi-Quellcode:
function IsColorValue(s:String):Boolean;
var v:cardinal; vc:integer
begin
  Val(s,v,vc)
  result:=(vc=0) and (v<=$FFFFFF);
end;
  Mit Zitat antworten Zitat
Ferber

Registriert seit: 9. Mär 2005
Ort: Wien Umgebung
155 Beiträge
 
Delphi 2006 Architect
 
#4

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

  Alt 19. Dez 2005, 20:36
'IsColorValue' ist natürlich sehr elegant.
Otto
  Mit Zitat antworten Zitat
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, 20: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
Chrissi91

Registriert seit: 28. Jul 2005
849 Beiträge
 
#6

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

  Alt 20. Dez 2005, 05:12
Danke an alle, die mir geholfen haben! Das mit dem Zahlen prüfen funtkioniert super! Und mit dem Testen, ob der Farbwert auch gültig ist, habe ich aanders gelöst. Die Farbe wird mit einem Colordialog ausgewählt und automatisch von dort übernommen, d.h. es können kein Fehler kommen.

Danke ochmals!

Chrissi91
  Mit Zitat antworten Zitat
lord.paddington

Registriert seit: 5. Jul 2008
6 Beiträge
 
Delphi 6 Professional
 
#7

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

  Alt 5. Jul 2008, 14:26
...so habe ich es gerade umgesetzt:

Delphi-Quellcode:
try
      Memo1.Lines[0]:=Edit1.Text;
      dummy:=StrToInt(Edit1.Text);
    except
      showmessage('ungültige Eingabe');
      exit;
    end;
pfutsch ist hin und hin ist pfutsch
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

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

  Alt 5. Jul 2008, 14:37
Warum nicht IntToStrDef oder TryIntToStr. Oder man lässt nur Zahlen bei der Eingabe zu.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
lord.paddington

Registriert seit: 5. Jul 2008
6 Beiträge
 
Delphi 6 Professional
 
#9

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

  Alt 5. Jul 2008, 14:44
das würde dann wie aussehen???
pfutsch ist hin und hin ist pfutsch
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#10

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

  Alt 5. Jul 2008, 14:46
Entweder TMaskEdit oder im KeyPress-Event manuell überprüfen
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:52 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz