Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   beim leeren feld oder wenn der wert zu klein ist (https://www.delphipraxis.net/180519-beim-leeren-feld-oder-wenn-der-wert-zu-klein-ist.html)

almanciyabanci 26. Mai 2014 12:54

beim leeren feld oder wenn der wert zu klein ist
 
Hallo alle zusammen,

ich möchte wen edit1 feld leer ist oder wen der wert (zahl) kleiner als 4 ist soll eine fehlermeldung kommen..

wen edit1 leer ist funktioniert es mit dem code unten

Code:
 
if (Edit1.GetTextLen = 0 )then
     begin
      ShowMessage(' Wert eintragen');
     end
else
jedoch sobald ich der anweisung sagen <= 4 klappt es nicht, ich bekommen bis zu einem wert von 9999 die ShowMessage und erst bei einem wert von 10000 bekomme ich ShowMessage nicht mehr.

Code:

if (Edit1.GetTextLen <= 4 )then
     begin
      ShowMessage(' Wert eintragen oder der wert ist kleiner als 4');
     end
else

DeddyH 26. Mai 2014 13:02

AW: beim leeren feld oder wenn der wert zu klein ist
 
GetTextLen liefert Dir die Stringlänge und nicht die Zahlenentsprechung des Strings, den musst Du erst mit StrToInt/TryStrToInt/StrToIntDef umwandeln.

Sir Rufo 26. Mai 2014 13:08

AW: beim leeren feld oder wenn der wert zu klein ist
 
Delphi-Quellcode:
var
  LValue : Integer;
begin
  if Edit1.Text = ''
  then
    ShowMessage( 'Wert eintragen' )
  else
    if not TryStrToInt( Edit1.Text, LValue )
    then
      ShowMessage( 'Zahl-Wert eintragen' )
    else
      if LValue < 4 
      then
        ShowMessage( 'Wert muss mindestens 4 sein' );
end;

baumina 26. Mai 2014 13:14

AW: beim leeren feld oder wenn der wert zu klein ist
 
GetTextLen liefert dir nur die Textlänge (9999 = 4 Zeichen lang).

Der Inhalt eines Editfeldes steht in Edit1.Text drin.

Für den Zahlenvergleich musst du den Text in eine Zahl umwandeln. Die Umwandlung kannst du mit StrToInt(Edit1.Text) machen.

IntToStr kann auf einen Umwandlungsfehler laufen, diesen solltest du mit einem try abfangen.

Zusammenfassend käme dann folgendes raus:

Delphi-Quellcode:
try
  if StrToInt(Edit1.Text) <= 4 then
  begin
    ShowMessage('Der Wert ist kleiner als 4');
  end;
except
  ShowMessage('Bitte eine gültige Zahl eintragen');
end;

mkinzler 26. Mai 2014 13:16

AW: beim leeren feld oder wenn der wert zu klein ist
 
Wenn nicht unterschieden werden soll, ob Wert zu klein /kein Wert dann:

Delphi-Quellcode:
if StrToIntDef(Edit1.Text, 0) <= 4 then
begin
    ShowMessage(' Wert eintragen oder der wert ist kleiner als 4');
end;

Sir Rufo 26. Mai 2014 13:18

AW: beim leeren feld oder wenn der wert zu klein ist
 
@baumina

Solche Beispiele verleiten Anfänger das Exception-Handling gründlich falsch zu verstehen und finden sich leider zu häufig in vielen Beispielen.

baumina 26. Mai 2014 13:25

AW: beim leeren feld oder wenn der wert zu klein ist
 
Zitat:

Zitat von Sir Rufo (Beitrag 1260253)
@baumina

Solche Beispiele verleiten Anfänger das Exception-Handling gründlich falsch zu verstehen und finden sich leider zu häufig in vielen Beispielen.

Oh, vielleicht ist das ja dann auch noch ein Anfängerfehler von mir selber .... kannst du mir das genauer erklären was du damit meinst?

mkinzler 26. Mai 2014 13:26

AW: beim leeren feld oder wenn der wert zu klein ist
 
Geb doch zum Test mal "Hallo" in das Editfeld ein

Sir Rufo 26. Mai 2014 13:27

AW: beim leeren feld oder wenn der wert zu klein ist
 
Zitat:

Zitat von baumina (Beitrag 1260256)
Zitat:

Zitat von Sir Rufo (Beitrag 1260253)
@baumina

Solche Beispiele verleiten Anfänger das Exception-Handling gründlich falsch zu verstehen und finden sich leider zu häufig in vielen Beispielen.

Oh, vielleicht ist das ja dann auch noch ein Anfängerfehler von mir selber .... kannst du mir das genauer erklären was du damit meinst?

In einem anderen Thread (oder PN) gerne (sonst sprengen wir hier den Rahmen)


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:55 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