Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Edit feld


thoughtless - Di 09.07.02 18:38
Titel: Edit feld
Hallo..
ich habe eine ganz einfache frage..
was muss ich tun um ein ganz normales edit feld als zahl benutzen zu können?
damit ich die eingetippte zahl in einer formel verwenden kann....

schon mal ein danke im vorraus

ps: ich weiss es ist eine total banale frage. trotzdem hoffe ich, ihr kommt jetzt nicht mit posts wie "hättest du besser im internet nachgeschaut" daher..


Maxigraf - Di 09.07.02 18:54

Einfach


Quelltext
1:
StrToInt(edit1.text)                    


Das gibt dir den Wert von Edit1 als Zahl zurück, sofern keine Buchstaben drin sind...


Alfons-G - Di 09.07.02 19:23

Am Besten machst Du es so:

Quelltext
1:
2:
3:
4:
5:
6:
try
  intZahl := StrToInt(Trim(Edit1.Text));
except
  beep;
  intZahl := 0;
end;
Mit Trim entfernst Du Leerzeichen, falls der User keine korrekte Zahl eingegeben hat, piepst es und die Variable wird mit 0 belegt.
Du kannst dann anschließend das Ergebnis auswerten.

:idea:


Frischling - Mi 10.07.02 09:20

HUHU

Also ich habe es im Delphigrundkurs immer mit:

Quelltext
1:
2:
 a := StrToFloat(Edit1.Text);
 b := StrToFloat(Edit2.Text);

gemacht und dann a bzw. b in meine Formel übernommen.

und wenn Du in das OnKeyPress Ereignis:

Quelltext
1:
2:
3:
4:
5:
6:
7:
begin
     if key = #13 then begin
        Self.Perform(WM_NEXTDLGCTL, 0, 0);
        key := #0;
     end;
     if not (key in ['0'..'9',#8]) then key:=#0;
end;

reinschreibst dann können auch nur Zahlen ins Editfeld geschrieben werden :)

Code-Tags hinzugefügt. Tino


thoughtless - Mi 10.07.02 11:00
Titel: danke
pefekt! dankschön
das war genau das was ich haben wollte!


Udontknow - Mi 10.07.02 11:05

Hallo,

also ich vermeide die try-except-Variante aus dem einfachen Grunde, weil ich beim Debuggen nicht immer wieder eine Exception von der IDE gemeldet bekommen möchte. Ja, ich weiss, man kann die Meldungen ausschalten, aber das ist zu Debugzwecken auch nicht gerade sinnvoll.

Ich hatte mal eine Funktion gestrickt, die schaut, ob es sich nun wirklich um einen Integerwert handelt, ohne daß eine Exception ausgelöst wird (Im Grunde genommen prüfte sie nur, ob nur Ziffern eingegeben wurden, ging also einfach jeden Char des zu prüfenden Strings durch).

Cu,
Udontknow