none
faire une action 1 fois meme si condition = true RRS feed

  • Question

  • bonjour a tous!

    Je n'arrive pas à realiser une action 1 seule fois (normale puisque ma premiere condition et toujours vrai)

     je ne sais pas trop comment m'y prendre.

    Ex :

    If

     

     

    PictureBox1.Visible = True Then

    (action divers)

     

     

    End If

     

    Voila mon probleme c'est que l'action divers je voudrai la faire 1 seule fois ...

    Merci d'avance !

    lundi 24 janvier 2011 17:03

Réponses

  • Bonjour,

    Déclarez une variable de type booléen dans votre classe et écrivez le code suivant :

    If monBooleen = False Then
      monBooleen = True
      ' Code a exécuter une seule fois
    End If
    

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Proposé comme réponse TroxsaEditor lundi 24 janvier 2011 17:48
    • Marqué comme réponse nini06700 mercredi 26 janvier 2011 16:43
    lundi 24 janvier 2011 17:19
    Modérateur
  • Bonjour,

    Oui en effet, ne pas hésiter à définir plusieurs variables si necessaire:

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim ParcoursProcedure As Boolean = False
     Dim ParcoursUneFois As Boolean = False
     If PictureBox1.Visible = True Then
      If ParcoursProcedure = False Then
      ParcoursProcedure = True
      If ParcoursUneFois = False Then
       ParcoursUneFois = True
       ' Code à éxecuter une fois
      End If
      End If
      End If
     End Sub
    


    fred
    • Marqué comme réponse nini06700 mercredi 26 janvier 2011 16:43
    mardi 25 janvier 2011 12:55
  • Bonjour,

    La réponse de Gilles convient tout à fait, je me permets de préciser.

    Au début de ta méthode, voire au début de ta classe en static, si besoin est:
    Dim pasEncoreFait As Boolean = True
    


    Dans ta boucle :
    If PictureBox1.Visible Then
    If pasEncoreFait Then
    (action divers)
    pasEncoreFait = False
    End If
    End If
    


    Cordialement,

    Thomas
    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    • Marqué comme réponse nini06700 mercredi 26 janvier 2011 16:43
    mardi 25 janvier 2011 13:04

Toutes les réponses

  • Bonjour,

    Déclarez une variable de type booléen dans votre classe et écrivez le code suivant :

    If monBooleen = False Then
      monBooleen = True
      ' Code a exécuter une seule fois
    End If
    

    Cordialement


    Gilles TOURREAU - MVP C#
    Architecte .NET/Consultant/Formateur chez Winwise
    Blog : http://gilles.tourreau.fr
    - MCPD : Enterprise Developper / Windows Developper 3.5 / ASP .NET 3.5
    - MCTS : ADO .NET 3.5 / SQL Server 2008 Developper / Windows Forms 3.5 / ASP .NET 3.5
    • Proposé comme réponse TroxsaEditor lundi 24 janvier 2011 17:48
    • Marqué comme réponse nini06700 mercredi 26 janvier 2011 16:43
    lundi 24 janvier 2011 17:19
    Modérateur
  • Bonjour,

    La problematique c'est que monBooleen et toujour vrai donc quoi qu'il arrive sa boucle...

    le code doit etre exécuter 1 seule fois meme si la condition et toujours vrai

    merci pour cette element sa me débloque autre part ds mon petit programme

    mardi 25 janvier 2011 08:07
  • Bonjour,

    Pour éviter que ça boucle sans modifier la valeur true de votre booléen, il conviendrait peut-être de définir une autre condition, non?

    mardi 25 janvier 2011 10:13
  • Bonjour,

    Oui en effet, ne pas hésiter à définir plusieurs variables si necessaire:

     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     Dim ParcoursProcedure As Boolean = False
     Dim ParcoursUneFois As Boolean = False
     If PictureBox1.Visible = True Then
      If ParcoursProcedure = False Then
      ParcoursProcedure = True
      If ParcoursUneFois = False Then
       ParcoursUneFois = True
       ' Code à éxecuter une fois
      End If
      End If
      End If
     End Sub
    


    fred
    • Marqué comme réponse nini06700 mercredi 26 janvier 2011 16:43
    mardi 25 janvier 2011 12:55
  • Bonjour,

    La réponse de Gilles convient tout à fait, je me permets de préciser.

    Au début de ta méthode, voire au début de ta classe en static, si besoin est:
    Dim pasEncoreFait As Boolean = True
    


    Dans ta boucle :
    If PictureBox1.Visible Then
    If pasEncoreFait Then
    (action divers)
    pasEncoreFait = False
    End If
    End If
    


    Cordialement,

    Thomas
    Thomas Aimonetti - C# - Sharplog Engineering - http://www.sharplog.fr
    • Marqué comme réponse nini06700 mercredi 26 janvier 2011 16:43
    mardi 25 janvier 2011 13:04