Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - überprüfung:ob in edit feld ein text/zahl steht


LittleBeer - Fr 05.07.02 14:35
Titel: überprüfung:ob in edit feld ein text/zahl steht
ich will ein edit feld überprüfen, ob in ihm ein test anstadt eine zahl eingetragen wurde. die eine vaiante mit zahl/text war keine problem, aber mit test/zahl bekomm ich nicht hin.
muss ich das mit einer variabeln machen, wenn ja wie muss diese deklariert werden???

brauch eure hilfe

schon mal vielen dank für die antworten im vorraus.

gruß

little


Tino - Fr 05.07.02 14:40

Verstehe ich nicht (Text/Zahl...Zahl/Text...Test ?!?!?!)

Gib mal ein Beispiel!


Alibi - Fr 05.07.02 14:41


Quelltext
1:
2:
3:
4:
5:
try
  strtoint(Edit1.text)
except
  showmessage('keine zahl');
end;


LittleBeer - Fr 05.07.02 14:57
Titel: danke, aber
vielen dank, das mit den zahlen geht:)

ABER wie überprüf ich, ob eine ZAHL anstadt eines TEXTES eingetragen wird? das ist mein prob!!

Little


Klabautermann - Fr 05.07.02 15:08
Titel: Re: danke, aber
Hallo,

LittleBeer hat folgendes geschrieben:
ABER wie überprüf ich, ob eine ZAHL anstadt eines TEXTES eingetragen wird? das ist mein prob!!


das verstehe ich nicht ganz. Willst du ein Editfeld so umbauen, dass nur Ziffern eigegeben werden können?

dann solltest du etwas in diese Richtung in das OnKeyPress ereignis einbauen:

Quelltext
1:
2:
3:
4:
5:
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  IF NOT (key IN ['0'..'9']) THEN
    key := #0;
end;


Sollte das den ensprechen was du willst, dann sehe es als Hausaufgabe an den Code so zu erweitern, das auch negative- und gegebenenfalls Kommazahlen eingegeben werden können ;).

Gruß
Klabautermann


LittleBeer - Fr 05.07.02 15:14
Titel: ja!!
das ist schon mal eine große hilfe, aber kann ich dabei vieleicht auch noch die backspace taste frei geben????? so kann ich ja nur zahen eingeben(was ich auch wollte) allerdings kann ich diese nicht löschen? kann man das noch einstellen??


LOOM - Fr 05.07.02 16:07

Backspace wird als Hex 8 (#8) abgefragt :

if Key in ['0'..'9','-',',',#8] then key:=key
else key := #0;


LOOM - Fr 05.07.02 16:08

Jetzt hat er mir doch ein Smilie eingebaut.....

Backspace wird als Hex 8 (#8) abgefragt :

if Key in ['0'..'9','-',',',#8] then key:=key
else key := #0;


Klabautermann - Fr 05.07.02 16:38

LOOM hat folgendes geschrieben:
Backspace wird als Hex 8 (#8 ) abgefragt :

Quelltext
1:
2:
if  Key  in ['0'..'9','-',',',#8] then key:=key
                           else key := #0;


Da musst du aufpassen, jetzt kann man in der Zahl belibg oft und an belibig vielen Stellen ein Minus und ein Komma eingeben. So einfach sind die Hausaufgaben auch nicht :twisted:.

Gruß
Klabautermann

PS: Verwende bitte die [code ] Tags.


LOOM - Fr 05.07.02 17:35

Er hat doch nur nach dem Backspace gefragt ....
Den Rest erledige ich beim Ereignis Change.
Ist als numerische Edit-Komponente realisiert mit #Nachkommastellen, rechtsbündig und Eingabe steht als Double automatisch zur Verfügung.

Jetzt noch der Code-test:


Quelltext
1:
Test