Realbasic : sortie dans une condition

  • Créateur du sujet Créateur du sujet Membre supprimé 2
  • Date de début Date de début
M

Membre supprimé 2

Invité
Bonjour,

je voudrais savoir comment faire pour sortir d'une condition dans Realbasic?

Exemple:
Ds un programme de chat, pour se connecter, il faut que 3 champ soit remplit : IP, port et pseudo.
Le bouton affiche un message d'erreur lorsque il est cliqué et que un des 3 champs est vide. Le probleme c'est que la connexion se lance apres avoir cliquer OK sur le msg d'erreur. Je voudrais bloquer la connexion si un des 3 champs est remplie.

Si vous avez autre chose comme technique, je suis partant.

Merci d'avance
 
Si tu mets un message d'erreur dans le bouton, tu peux faire en sorte qu'il soit non clickable : Monbouton.enabled = false
et vice versa
smile.gif



sinon, tu peux aussi tester le libellé du bouton avant de faire ton execution :
If Monbouton.Caption = "OK" then
...
Else
...
End
 
Dans Text change des EditField IP Pseudo et port tu ajoute la ligne

Self.PBOK.enable=(Self.EFIP.text<>"" and Self.EFPseudo.text<>"" and Self.EFPort.text<>"")

Ton bouton ne sera actif que si les trois champs sont différents de vide le bouton est actif...

Cependant je te conseille tout de même de mettre un test au debut de OK (ca t'évidera des pb si un jour tu vire la ligne dans TextChange...)
<font class="small">Code:</font><hr /><pre>
If (Self.EFIP.text&lt;&gt;"" and Self.EFPseudo.text&lt;&gt;"" and Self.EFPort.text&lt;&gt;"") Then
// ton code d'activation
Else
Beep
MsgBox ("un des champs est vide"+Chr(13)+"Connection impossibe")
End if
</pre><hr />

Si tu veux indiquer à ton utilisateur précisément quel est le pb tu peux utiliser un Select Case (Cependant si il y a plusieurs érreures l'utilisateur ne le saura pas, le programme sort à la première erreure..)
<font class="small">Code:</font><hr /><pre>
If Self.EFIP.text="" then
Beep
Msgbox "Pas de IP"
Self.EFIP.SetFocus
ElseIf Self.EFPseudo.text="" then
Beep
Msgbox "Pas de Pseudo"
Self.EFPseudo.SetFocus
ElseIf Self.EFPort.text="" then
Beep
Msgbox "Pas de Port"
Self.EFPort.SetFocus
else
// ton code
end if </pre><hr />
.SetFocus permet à l'editField de prendre le focus pour que l'utilisateur n'ai juste que à taper son texte...