Entwickler-Ecke

Grafische Benutzeroberflächen (VCL & FireMonkey) - Bei Wertüberschreitung Edit-Feld zurücksetzen


Boerdi - Sa 04.10.08 15:33
Titel: Bei Wertüberschreitung Edit-Feld zurücksetzen
Hallo,

ich habe eine Frage zu einer If Abfrage bei Edit Feldern. Ich habe dieses als Variable "double" deklariert und möchte das bei Button-Click folgendes passiert.

Wenn der Wert x überschritten wird, soll er das Editfeld zurücksetzen und eine Message anzeigen. Bisher habe ich das so gemacht und es funktioniert auch wunderbar. Allerdings nur bei Zahlen bis 99. Ab 100 kommt keine Warnung mehr.


Delphi-Quelltext
1:
if (EBreite.Text>='75'then (showmessage('Maximalbreite erreicht'))                    


Wisst ihr warum das nur bis 100 funktioniert?

MfG


Yogu - Sa 04.10.08 15:39

Du solltest nicht einfach Strings über den Operator >= vergleichen. Ich wusste bis jetzt nicht, dass das möglich ist...

Benutze besser TSpinEdit anstelle von TEdit, da kannst du MaxValue einstellen.


Gausi - Sa 04.10.08 15:42

Du vergleichst Zeichenketten miteinander. Und so wie "Anna" im Telefonbuch vor "Tom" kommt, steht "100" vor "75". ;-)

Abhilfe: SpinEdits oder die Strings in Zahlen umwandeln und diese vergleichen. Stichworte StrToInt, StrToFloat.


Boerdi - Sa 04.10.08 15:47

Danke für euren schnellen Antworten. Gibt es diese TSpinEdits in der normalen Toolpalette von Turbo Delphi? Irgendwie find ich die nicht. :(

MfG


Gausi - Sa 04.10.08 15:48

Nein, bei Turbo Delphi Explorer sind die nicht dabei. Dann nimm halt die Edits mit StrToInt. ;-)


Boerdi - Sa 04.10.08 15:55

Sorry, dass ich nochmal nachfrage, aber wie kann ich meine If-Abfrage dann aufbauen? Bin leider noch nicht so wahnsinnig tief drin in Delphi. Meine Variable EBreite würde ich dann also zu Integer umwandeln.

Mfg


Gausi - Sa 04.10.08 16:11

In etwa so:

Delphi-Quelltext
1:
if (StrToInt(EBreite.Text) >= 75then (showmessage('Maximalbreite erreicht'))                    


freak4fun - Mo 06.10.08 14:22

user profile iconGausi hat folgendes geschrieben Zum zitierten Posting springen:
In etwa so:

Delphi-Quelltext
1:
if (StrToInt(EBreite.Text) >= 75then (showmessage('Maximalbreite erreicht'))                    

Aber bitte mit Ausnahmebehandlung! :shock: