Delphi-PRAXiS
Seite 1 von 4  1 23     Letzte » 

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Richtige Fallunterscheidung (https://www.delphipraxis.net/155135-richtige-fallunterscheidung.html)

Zuckerberg 10. Okt 2010 17:32

Richtige Fallunterscheidung
 
Hallo Liebe Community,

nun komm ich zu einer Frage die ich mir oft stelle,
nämlich wie ich die richtige Fallunterscheidung mache damit mein Programm nicht abstürzt...

und zwar habe ich ein Edit und möchte mit dessen Inhalt weiter arbeiten,jedoch als Integer( strtoint, das ist nicht das Problem :wink:)

Das Problem ist:

1. wenn der Benutzer NICHTS eingibt, wie erkläre ich das dem Programm ?? mit if ... aber wie richtig also ich würde es so machen und es klappt nicht :
Delphi-Quellcode:
procedure TGUI.Button1Click(Sender:TObject);
begin
   if (Edit1.Text = '') then
   ShowMessage(Bitte geben sie eine Zahl ein !);
   // Gibts eig einen Befehl der die procedure anhählt oder beendet?
   // wäre an dieser eig angebracht also jetzt nicht bei so einen  
   // einfachen Beispiel, aber bei komplexeren angelegenheiten ...
   else
   ...
end;
2.Wenn der Benutzer keinen Integer eingibt sondern einen String ; oder beides gemischt also da würde ich folgendes tun:

Delphi-Quellcode:
procedure TGUI.Button1Click(Sender:TObject);
begin
   if (Edit1.Text = ???) then // hier bräuchte ich einen Tipp
   ShowMessage(Bitte geben sie eine Zahl ein !);
   // Gibts eig einen Befehl der die procedure anhählt oder beendet?
   // wäre an dieser eig angebracht also jetzt nicht bei so einen  
   // einfachen Beispiel, aber bei komplexeren angelegenheiten ...
   else
   ...
end;
Danke für die Hilfe

Zuckerberg

xZise 10. Okt 2010 17:36

AW: Richtige Fallunterscheidung
 
Guck mal nach Delphi-Referenz durchsuchenTryStrToInt. Weil dein Problem hat nicht so viel mit Fallunterscheidung zu tun, bzw. wenn man da nicht auf diese Methode zurückgreift, wird das schon etwas komplexer.

Übrigens, um eine Methode Anzuhalten kannst du Delphi-Referenz durchsuchenSleep() oder DelayDelay verwenden.

MfG
Fabian

nachti1505 10. Okt 2010 17:38

AW: Richtige Fallunterscheidung
 
StrToInt mit try/except umgeben oder gleich TryStrToInt nutzen... alternativ lässt du im Edit nur Ziffern zu.

generic 10. Okt 2010 17:40

AW: Richtige Fallunterscheidung
 
Ich selbst arbeite gerne mit eigenen Exceptions und Schutzblöcken.
Abhängig von der Exception kannst du dann reagieren.

Du kannst damit natürlich z.b. strtoint nutzen um die Eingabe zu validieren, da die Exception gefangen wird.

Teekeks 10. Okt 2010 17:43

AW: Richtige Fallunterscheidung
 
Zitat:

Zitat von Zuckerberg (Beitrag 1054893)
Gibts eig einen Befehl der die procedure anhählt oder beendet?

Nennt sich exit; (aus der Procedure/Function rausspringen) oder auch break; (aus der aktuellen Schleife rausspringen)

Luckie 10. Okt 2010 17:45

AW: Richtige Fallunterscheidung
 
alternativ kann man die Oberfläche auch so gestalten, dass ein weiterarbeiten nur möglich ist, wenn die Eingabe korrekt ist. Also Schaltflächen nur aktivieren, wenn im Eingabefeld was drin steht oder so.

Zuckerberg 10. Okt 2010 17:45

AW: Richtige Fallunterscheidung
 
Danke erstmal

nur was macht TryStrtoInt genau ??
brauch ich dabei keine if Abfrage mehr ?

und wie kriegt man es hin das im Edit nur Zahlen zugelassen werden ?

mkinzler 10. Okt 2010 17:46

AW: Richtige Fallunterscheidung
 
Was der Name sagt: Es versucht einen String in einen Integer zu wandeln und gibt zurück, ob die Wandlung erfolgreich war

DeddyH 10. Okt 2010 17:48

AW: Richtige Fallunterscheidung
 
TryStrToInt (eine schöne Gelegenheit, die Delphi-Referenz einmal vorzustellen *g*)

Luckie 10. Okt 2010 17:49

AW: Richtige Fallunterscheidung
 
Frage eins: Delphi Hilfe. Frage zwei: Forensuche.


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.
Seite 1 von 4  1 23     Letzte » 

Powered by vBulletin® Copyright ©2000 - 2021, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf