![]() |
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 |
Re: Prozedur bei falscher Eingabe anhalten
Mit
Delphi-Quellcode:
wird die jeweils aktuelle Prozedur/ Funktion abgebrochen.
Exit;
MfG Binärbaum |
Re: Prozedur bei falscher Eingabe anhalten
Delphi-Quellcode:
if zahl1 = zahl2 then begin
showmessage('falsch'); exit; end; [hier der andere code] |
Re: Prozedur bei falscher Eingabe anhalten
Danke!!! Ihr habt mir sehr geholfen :)
|
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! |
Re: Prozedur bei falscher Eingabe anhalten
Warum keine Exceptions verwenden ??
Delphi-Quellcode:
Wenn man die Eingaben validieren muss kann man sogar noch zusätzlichen Komfort für den Benutzer einbringen:
if Zahl[i]=Zahl[j] then
raise Exceptions.Create('Gleiche Zahlen, bitte ändern');
Delphi-Quellcode:
if StrToIntDef(EditAnzahl.Text, 0) < 1 then
begin EditAnzahl.SetFocus; // auf das fehlerhafte Eingabefeld "springen" raise Exception.Create('Anzahl muss >= 1 sein'); |
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:
p.s.: vereinfachtes beispiel :wink:
{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} 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 10:24 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz