Seite 1 von 1
Schleife vorzeitig beenden
Verfasst: 19.10.2012 19:29
von Schlaubi
Hallo,
ich habe ein kleines Tool geschrieben. Wenn ein User OK klickt, wird geprüft, ob alle Felder ausgefüllt wurden:
If GetGadgetText(#String_1)=""
MessageRequester("blabla","")
endif
So, nun wird die Schleife logischerweise weiter ausgeführt, ich will diese aber unterbrechen, dass der User die Möglichkeit hat noch etwas einzugeben. Mit Break hab ich es auch versucht, dann beendet aber die Software ganz. Wie kann ich das realisieren?
Danke
Daniel
Re: Schleife vorzeitig beenden
Verfasst: 19.10.2012 19:39
von STARGÅTE
Wäre nett wenn du "die Schleife", von der du Sprichst auch mit postest (zumindest teilweise) und bitte in Code-Tags
Re: Schleife vorzeitig beenden
Verfasst: 19.10.2012 19:43
von Schlaubi
ok
Code: Alles auswählen
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
End
Case #PB_Event_Gadget
If EventGadget() = #Button_0
; Jetzt folgt die gemeinte Schleife
[b] If GetGadgetText(#String_7) Or GetGadgetText(#String_17) Or GetGadgetText(#String_27)=""
MessageRequester("No Mail-Address","You need to enter a Mail Address at least!")
Break
EndIf[/b]
; und der rest
EndIf
EndSelect
ForEver
Danke schonmal
Re: Schleife vorzeitig beenden
Verfasst: 19.10.2012 19:44
von ts-soft
Ich denke mal, es geht um eine
If Schleife 
Re: Schleife vorzeitig beenden
Verfasst: 19.10.2012 19:49
von STARGÅTE
@Schlaubi:
Was willst du denn bezwecken?
Wenn du nach dem MessageRequester() auf OK klickst, wird doch der Code normal weiter ausgeführt ohne das Break, und der User kann seine Eingabe korrigieren.
Ansonsten gibt es noch das Continue, es veranlasst die Schleife, wieder am Anfang zu beginnen. So verhindest du das bei keiner richtigen Eingabe, alle Fehler angezeigt werden, sondern nur der erste.
Re: Schleife vorzeitig beenden
Verfasst: 19.10.2012 19:57
von Schlaubi
Hi, danke
mit Continue konnte ich es realisieren, dass der User seine Eingabe nun noch ändern kann.
Danke
Re: Schleife vorzeitig beenden
Verfasst: 19.10.2012 20:12
von Kiffi
Anmerkung:
Schlaubi hat geschrieben:Code: Alles auswählen
If GetGadgetText(#String_7) Or GetGadgetText(#String_17) Or GetGadgetText(#String_27)=""
das wird wohl nicht so funktionieren, wie Du Dir das meines Erachtens vorstellst.
Du prüfst hier nicht, ob String_7 oder String_17 oder String_27 leer sind, sondern
ob String_7 nicht leer oder String_17 nicht leer oder String_27 leer ist.
wenn dem so ist, dann solltest Du Deinen Code wie folgt abändern.
Code: Alles auswählen
If GetGadgetText(#String_7) = "" Or GetGadgetText(#String_17) = "" Or GetGadgetText(#String_27)=""
Grüße ... Kiffi
P.S.: In Deinem eigenen Interesse solltest Du Deine Gadget-Bezeichnungen
aussagekräftiger gestalten. Wenn Du nach längerer Zeit mal Deinen Code
bearbeiten solltest, dann wirst Du auch nicht auf Anhieb wissen, was #String_7
ist. Besser wäre hier sowas wie #txtMailAdresse (zum Beispiel).
P.P.S.: Das mit dem Continue scheint mir auch ne Krücke zu sein. Das kann man
sauberer programmieren.