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.