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

WinDev Discussion :

Vider membres d'une classe [WD17]


Sujet :

WinDev

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut Vider membres d'une classe
    Bonjour,

    si je souhaite "recycler" un objet dans mon code (donc sans le libérer), pour éviter tout risque d'accéder à des membres déjà remplis lors de l'instance, je souhaite vider mes membres.

    Existe-t-il une fonction qui fait cela sans qu'on doive passer par tous les membres 1 à 1 dans une méthode ?

    Merci!

  2. #2
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 276
    Points : 739
    Points
    739
    Par défaut
    Bonjour,

    Regardez du côté de la fonction VariableRAZ (marche pour structure, classe et variable composée entre autre)
    http://doc.pcsoft.fr/fr-FR/?3013069&...leraz-fonction

  3. #3
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Bonjour,
    D'après l'aide en ligne de cette fonction, l'objet sera libéré...
    Dans un test j'avais réussis à lister les membres d'une classe (voir ici ).
    En utilisant aussi les indirections (ou VariableRAZ du coup), tu devrais pourvoir le faire dans une méthode de la classe.

    Tatayo.

  4. #4
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Citation Envoyé par tatayo Voir le message
    D'après l'aide en ligne de cette fonction, l'objet sera libéré...
    Seulement si c'est un objet alloué dynamiquement

  5. #5
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Citation Envoyé par hpascal Voir le message
    Seulement si c'est un objet alloué dynamiquement
    Tout à fait, mais comme la question était:
    Citation Envoyé par cladoo Voir le message
    si je souhaite "recycler" un objet dans mon code (donc sans le libérer),...
    j'en ai déduit qu'il s'agit d'objet dynamique, d'où ma remarque.

    Tatayo.

  6. #6
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Bonjour,

    En utilisant le nouveau type Définition vous pouvez développer un VariableRAZ pour les classes, "dynamiques" ou pas, avec une boucle pour les membres.
    Sinon, il y a un moyen bien plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    clFoo est un MaClasse
    pclBar <= clFoo // pclBar est remis à zéro

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    315
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 315
    Points : 202
    Points
    202
    Par défaut
    Merci à tous pour votre aide : j'ai utilisé une classe mère qui a une méthode de RAZ des membres : soit ceux passés en paramètre via un tableau si cela ne doit concerner que certains membres, sinon tous.

    Si ça peut aider voici le code (il fonctionne d'après mes tests) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    PROCEDURE RAZ_Membres(tabListeMembres est un tableau de chaînes=Null)
    //Récupération des membres de l'objet courant
    def est une Définition = RécupèreDéfinition(objet)
    var est une Description de Variable
     
    //Un tableau de membres à ré-initialiser a été fourni en paramètre
    SI Dimension(tabListeMembres) > 0 ALORS
    	//parcours des membres de la classe
    	POUR TOUT var DE def..Variable
    		//le membre fait partie de la liste fournie en paramètre
    		SI TableauCherche(tabListeMembres,tcLinéaire,var..Nom) <> -1 ALORS
    			VariableRAZ({var..Nom,indVariable})
    		FIN
    	FIN
    SINON //RAZ de tous les membres sans distinction
    	POUR TOUT var DE def..Variable
    		VariableRAZ({var..Nom,indVariable})
    	FIN
    FIN

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Citation Envoyé par Hibernatus34 Voir le message
    Bonjour,
    Sinon, il y a un moyen bien plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    clFoo est un MaClasse
    pclBar <= clFoo // pclBar est remis à zéro
    Si je ne m'abuse, ça revient à libérer l'objet initial et en utiliser un nouveau...

    Tatayo.

  9. #9
    Membre expérimenté
    Inscrit en
    Août 2010
    Messages
    726
    Détails du profil
    Informations forums :
    Inscription : Août 2010
    Messages : 726
    Points : 1 645
    Points
    1 645
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Si je ne m'abuse, ça revient à libérer l'objet initial et en utiliser un nouveau...

    Tatayo.
    Vous vous abusez.
    Lire ceci : http://doc.pcsoft.fr/fr-FR/?1515003&...sp=170#NOTE3_1
    (copie homonymique)

    Cependant, c'est vrai qu'on peut se demander à quoi sert la question d'origine. A mon avis c'est juste inutile.

  10. #10
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 197
    Points : 12 772
    Points
    12 772
    Par défaut
    Autant pour moi, j'ai confondu avec la prise de référence (<-).

    Tatayo.

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

Discussions similaires

  1. [MFC] rendre un thread membre d'une classe.
    Par giova_fr dans le forum MFC
    Réponses: 6
    Dernier message: 20/02/2006, 18h37
  2. Objet vector<Type> membre d'une classe
    Par Chewbi dans le forum SL & STL
    Réponses: 3
    Dernier message: 16/02/2006, 17h12
  3. Pointeur sur des fonctions membres d'une classe
    Par Muetdhiver dans le forum C++
    Réponses: 3
    Dernier message: 15/02/2006, 11h35
  4. [VB.NET]Reflexion lister les membres d'une classe ...presque
    Par lucie.houel dans le forum ASP.NET
    Réponses: 19
    Dernier message: 20/09/2005, 13h49
  5. Thread avec une fonction membre d'une classe
    Par SteelBox dans le forum Windows
    Réponses: 6
    Dernier message: 01/03/2004, 01h15

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