Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Prozedur bei falscher Eingabe anhalten (https://www.delphipraxis.net/41012-prozedur-bei-falscher-eingabe-anhalten.html)

Natta 24. Feb 2005 15:52


Prozedur bei falscher Eingabe anhalten
 
Hi!

Bin ein ziemlicher Delphi Laie, und hab folgende Frage: Ich möchte ein Programm schreiben, bei dem nur Eingaben in einem bestimmten Zahlenbereich gemacht werden dürfen, z.B. zwischen 1 und 49. Wenn eine falsche eingabe gemacht wird soll eine dementsprechende Nachricht erscheinen und die Prozedur angehalten werden.

Was ich bis jetzt habe ist folgendes:
...
if Zahl[i]=Zahl[j] then
begin
ShowMessage('Gleiche Zahlen, bitte ändern');

{Und hier müsste jetzt noch eine Anweisung hin mit der die Prozedur angehalten wird und dem Anwender ermöglicht wird die Zahlen zu verändern.}

end;

Habt ihr eine Idee? Kenne nur die Anweisung halt, aber die schließt gleich das ganze Programm, das möchte ich nicht.

Wär echt super, wenn Ihr mir helfen könntet ;)
LG Natta

Binärbaum 24. Feb 2005 15:54

Re: Prozedur bei falscher Eingabe anhalten
 
Mit
Delphi-Quellcode:
Exit;
wird die jeweils aktuelle Prozedur/ Funktion abgebrochen.

MfG
Binärbaum

xman 24. Feb 2005 15:54

Re: Prozedur bei falscher Eingabe anhalten
 
Delphi-Quellcode:
if zahl1 = zahl2 then begin
 showmessage('falsch');
 exit;
end;

[hier der andere code]

Natta 24. Feb 2005 15:59

Re: Prozedur bei falscher Eingabe anhalten
 
Danke!!! Ihr habt mir sehr geholfen :)

everdream 9. Okt 2007 15:43

Re: Prozedur bei falscher Eingabe anhalten
 
Ich habe in etwa das gleiche Problem, allerdings wäre es bei mir hilfreich, wenn die Prozedur nicht abgebrochen werden würde, sondern wenn die eingabe gemacht werden könnte und das programm dann von genau der stelle weiter laufen würde. notfalls halt auch mit einer kleinen extra Form.

Danke schonmal im Voraus!

shmia 9. Okt 2007 16:06

Re: Prozedur bei falscher Eingabe anhalten
 
Warum keine Exceptions verwenden ??
Delphi-Quellcode:
if Zahl[i]=Zahl[j] then
   raise Exceptions.Create('Gleiche Zahlen, bitte ändern');
Wenn man die Eingaben validieren muss kann man sogar noch zusätzlichen Komfort für den Benutzer einbringen:
Delphi-Quellcode:
if StrToIntDef(EditAnzahl.Text, 0) < 1 then
begin
  EditAnzahl.SetFocus; // auf das fehlerhafte Eingabefeld "springen"
  raise Exception.Create('Anzahl muss >= 1 sein');

everdream 9. Okt 2007 16:30

Re: Prozedur bei falscher Eingabe anhalten
 
Hm, so läuft das aber noch nich wirklich. Ich glaub ich erklär das einfach mal etwas ausführlicher:

Delphi-Quellcode:
{ganz viel code in einer prozedur...}

if (n = 0) then
n := Eingabe;
{falls n=0 ist soll dem benutzer die gelegenheit gegeben werden eine neue zahl einzugeben.
Nach der Eingabe soll das Programm hier fortfahren, ohne dass die Prozedur nochmal aufgerufen wird.
Was müsste ich jetzt also in der "Eingabe"-Function machen?}

{noch mehr code, der mit n <> 0 ausgeführt werden soll}
p.s.: vereinfachtes beispiel :wink:

Bei der Exception weiß ich nicht wie ich das programm wieder an der stelle aufnehmen kann (event soll ein buttonclick sein).


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