IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB 6 et antérieur Discussion :

[VB6]Initialiser une variable Static dans un évenement


Sujet :

VB 6 et antérieur

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut [VB6]Initialiser une variable Static dans un évenement
    Voila une méthode dans une classe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    public sub Methode_Evenement ()
       Static I as Long   
     
       I = I + 1
     
    end sub
    Comment puis je initialiser la valeur de la variable statique I à -1 ? (Par défaut il est a 0) ?

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    A mon avis il va y avoir des remarques sur le titre du sujet.
    Je ne comprends pas le code.

    La variable i est locale à cette procédure.
    Elle peut donc l'intialiser comme elle le veut

  3. #3
    Expert éminent sénior

    Avatar de Tofalu
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Octobre 2004
    Messages
    9 501
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Octobre 2004
    Messages : 9 501
    Points : 32 311
    Points
    32 311
    Par défaut
    Merci de changer ton titre car il ne veut rien dire.

    Merci de ta compréhension.


    Et d'éviter le MULTI POST

    A lire impérativement :

    Le guide de dvp

    Les règles

  4. #4
    Membre expert
    Avatar de khany
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 073
    Détails du profil
    Informations personnelles :
    Âge : 62
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 073
    Points : 3 890
    Points
    3 890
    Par défaut
    Effectivement, le titre ne suit aucune règle du forum !

    Change-le stp et nous te répondrons !

    merci
    avant de poster FAQ VB - Page sources VB - Cours VB

    Mes tutoriels : VB - VB.NET et ASP.NET

    N'oubliez pas Merci !

  5. #5
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Sans plus de précisions de ta part, je dirais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public sub Methode_Evenement ()
       Static I as Long   
        I = - 1
        I = I + 1
    end sub
    La question est fort simple, mais je ne ferais pas la fine bouche. Je t'envoie par MP mes coordonnées pour que tu puisses me verser les 2000 € de prime!

    Plus sérieusement, tu peux passer par un paramètre pour forcer l'initialisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Public Sub Method(Reset as Boolean = False)
        Static I as Long   
     
        If reset Then
            I = - 1
        Else
            I = I + 1
        End if
    End Sub

  6. #6
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    tout dépend si tu augmente ton i de plus que 1

    tu peux faire ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    static i as long
    if (i = 0) then i = -1
    i = i + X
    ici ton X doit etre > 1 car sinon ta var va tjrs etre 0
    sinon tu peux utiliser ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
       Static I
     
       If (IsEmpty(I)) Then I = -1
     
       I = I + 1
    cependant le type est variant, sauf que c'est la seule chose que isempty accepte
    Remoting Context Matters
    Everything in this chapter is 100 percent undocumented. Reliance on these techniques is not supported by either Microsoft, the publisher, or the author of this book. Use at you own risk! If your computer won't work afterwards, your toaster blows up or your car doesn't start, I assume no liability whatsoever: You're now about to enter the uncharted territories of .NET and you do so on your own risk. I can only provide some guidance

  7. #7
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Salut a tous !

    Pour le titre je sais pas le changer donc si vous le dites comment faire je le change !
    Mais sino c'est vraiment ca , c'est une question a 2000 Euros.

    Sérieusement maitenant,

    Shwin: ton code ne peut pas marcher car dans ce cas la variable sera réinitialiser a chaque passage dans la méthode, ce que je ne veux pas du tout faire.Sinon l'astuce avec la Variant me semble pas mal je vais tester

    CatBull: ma méthode est un évenement donc je ne peux rien faire au niveau des argyments ..

    Merci a tous

  8. #8
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Change de titre, et je t'explique comment y arriver évènement ou pas évènement...

  9. #9
    kor
    kor est déconnecté
    Nouveau membre du Club
    Inscrit en
    Juillet 2003
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Juillet 2003
    Messages : 46
    Points : 34
    Points
    34
    Par défaut
    Moi aussi je veux jouer!

    Ton titre est plutot osé.

    Bonne question comment peut-on initialiser une variable de classe en VB ?
    N'y a t il pas de constructeur en VB ?

    Eh, les modérateurs mettez lui une giffle à loverdose et changé lui son titre s'il ne sait pas le faire!
    Aimez-vous les uns les autres.

  10. #10
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Décembre 2004
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 42
    Points : 36
    Points
    36
    Par défaut
    Citation Envoyé par loverdose
    Salut a tous !

    Pour le titre je sais pas le changer donc si vous le dites comment faire je le change !
    Regardes ton premier post dans ce topic, le bouton EDITER est ton ami (c'est pourtant pas compliqué)

  11. #11
    Expert éminent
    Avatar de ThierryAIM
    Homme Profil pro
    Inscrit en
    Septembre 2002
    Messages
    3 673
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2002
    Messages : 3 673
    Points : 8 524
    Points
    8 524
    Par défaut
    Titre modifier par mes soin, sinon on va attendre jusqu'a Noel, mais gare, la prochaine fois, je verrouille
    Vous vous posez une question, la réponse est peut-être ici :
    Toutes les FAQs VB
    Les Cours et Tutoriels VB6/VBScript
    Les Sources VB6


    Je ne réponds pas aux questions techniques par MP. Utilisez les forums. Merci de votre compréhension

  12. #12
    Rédacteur
    Avatar de DarkVader
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    2 130
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 130
    Points : 3 118
    Points
    3 118
    Par défaut
    la méthode de shwin n'est pas loin du compte :

    un variant voit son type affecté en même temps que les données sous VB
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    i = IIf(IsEmpty(i), CLng(IsEmpty(i)), i + 1)
    devrait donc permettre de profiter
    - de l'initialisation à Empty du variant autorisant l'initialisation à -1 , et
    - d'une déclaration en tant que Long.

    on fait 50/50 shwin ? 1000€ chacun

  13. #13
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    Salut a tous !

    Pour le titre je sais pas le changer donc si vous le dites comment faire je le change !

    Regardes ton premier post dans ce topic, le bouton EDITER est ton ami (c'est pourtant pas compliqué)
    Merci je retiens !

    Mais j'hallucine au fait vous etes tous motivé que par l"argent ici !!!

    Bon je pense que la méthode avec la Variant est la meilleure et la plus propre.Sinon on m'a proposé ceci aussi mais bon je trouve que c'est moins propre ...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    Public sub My Methode ()
        Static I as Long
        Static tmp as Boolean 
     
        If Not tmp then
              I = -1
              tmp = True
        End If   
     
    End Sub
    Je trouves ca moins propre car je suis obligé de créer une variable pour pouvoir en initialiser une autre ![/code]

  14. #14
    Membre éclairé
    Avatar de shwin
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    568
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Novembre 2003
    Messages : 568
    Points : 777
    Points
    777
    Par défaut
    Citation Envoyé par DarkVader
    on fait 50/50 shwin ? 1000€ chacun
    pas de problème


    loverdose, j'accept paypal
    Remoting Context Matters
    Everything in this chapter is 100 percent undocumented. Reliance on these techniques is not supported by either Microsoft, the publisher, or the author of this book. Use at you own risk! If your computer won't work afterwards, your toaster blows up or your car doesn't start, I assume no liability whatsoever: You're now about to enter the uncharted territories of .NET and you do so on your own risk. I can only provide some guidance

  15. #15
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Et moi qui me suis cassé le trognon pour répondre sur le message original. Le 'party', c'est ici à ce qu'il parraît! Hé! les gars! les 2000 Euros sont pour moi!

  16. #16
    Membre éclairé
    Avatar de Catbull
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    542
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Avril 2003
    Messages : 542
    Points : 854
    Points
    854
    Par défaut
    Cette récompense me revient de droit : j'ai répondu le premier et réclamé le premier. J'suis un vrai chasseur de prime

    Pour ce qui est de l'élégance, la méthode de DarkVader et de Shwin est loin d'être parfaite. L'utilisation d'un variant pour une variable entière... je l'aurais cette prime

  17. #17
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 80
    Points : 60
    Points
    60
    Par défaut
    CatBull,Shwim,DarkVader
    Quand les modos partent en vrille ...mdr

    je pense qu'il est temps de fermer la question maintenant car ca commence a devenir torp business a mon gout !

    Au fait a la place des 2000 euros je peux pas payer en nature plutot ?


    Bon c'est bon ! allez RESOLU !

    Merci a tous

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Initialiser une variable bash dans un script awk
    Par TomRay dans le forum Shell et commandes GNU
    Réponses: 4
    Dernier message: 08/01/2011, 18h25
  2. Initialiser une variable static
    Par mamelouk dans le forum Débuter
    Réponses: 15
    Dernier message: 31/07/2008, 17h48
  3. Réponses: 4
    Dernier message: 23/02/2007, 09h37
  4. variable Static dans une classe
    Par cubitus91 dans le forum Delphi
    Réponses: 3
    Dernier message: 29/11/2006, 00h07
  5. Réponses: 5
    Dernier message: 14/06/2006, 16h35

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo