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 :

Cloner un objet


Sujet :

WinDev

  1. #1
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut Cloner un objet
    Bonjour à tous !

    Je suis de retour avec une petite question toute simple...

    Y-a-t-il, dans windev 9, la possibilité de cloner un objet (créé par mes soins), sans écrire moi même la méthode ?

    Si oui, comment s'il vous plait ?
    En vous remerciant, bonsoir.

  2. #2
    y0p
    y0p est déconnecté
    Membre du Club
    Inscrit en
    Novembre 2005
    Messages
    48
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 48
    Points : 45
    Points
    45
    Par défaut
    Salut

    J'ai déja pour ma part eu l'occasion de cloner des objets; en l'occurence des champs sur une fênetre, pour que cette dernière serve de fenetre de saisie suivant les paramètres données à l'initialisation.
    par contre j'ai du implémenter une methode qui gère la place des différents champs qu'ils soient clonés ou non. Par contre fais gaffe à ne pas lier les champs avec un fichier car cela prévaudrait à les lies tous dessus. J'ai plutot joué sur le nom futur des fichiers. Je ne dis pas que ma méthode est la meilleure mais c'est tout ce que j'ai trouvé pour le faire.

    exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    ChampClone(Lb,Lb..Nom+"i_i"+NumÈriqueVersChaine(l_nbChampsAffichees),0,i_YChamps)	
     
    SI l_HauteurFen<(i_YChamps+l_tailleEntete) ALORS
      // mise a jour de la taille de la fenetre
      l_HauteurFen=(i_YChamps+l_tailleEntete)
      SI l_HauteurFen>l_HauteurMaxFen ALORS
    	l_HauteurFen=l_HauteurMaxFen  // taille fenetre maximum
      FIN
    FIN
     
    // affectation de la valeur sur le champ cloné		{Lb..Nom+"i_i"+NumÈriqueVersChaine(l_nbChampsAffichees)}..Valeur=Table_Recueil_analyse.Code_analyse[i_nbChamps]

  3. #3
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    Merci, mais j'ai besoin de dupliquer un objet, pas de type champ, mais de classe !

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet1, monObjet2 est un objet maClasse
    puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    monObjet1:Cloner(monObjet2)
    J'ai trouvé une solution, mais c'est encore en cours de developpement, j'vais surement copier coller ici après coup, pour que tout le monde puisse l'utiliser ^^ (oui, j'ai fais une méthode générique, qui peut fonctionner avec toutes les classes/objets)
    En vous remerciant, bonsoir.

  4. #4
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Quelle est ta définition de cloner un objet ?
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  5. #5
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    En faire une copie exact.

    Si les membres de mon premier objet sont :

    nom = "durant"
    prénom = "pierre"
    age = 33

    Si je clone le premier objet dans le second, le second contiendra alors :

    nom = "durant"
    prénom = "pierre"
    age = 33

    (la même chose !)
    En vous remerciant, bonsoir.

  6. #6
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Qu'est-ce qui ne va pas avec la syntaxe :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Ob1, Ob2 sont des objets
     
    Ob1=Ob2
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  7. #7
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    Lorsque tu détruis l'objet 2, l'objet 1 est détruit ! Puisque l'égalité assigne uniquement l'adresse de l'objet 2 à l'objet 1...
    En vous remerciant, bonsoir.

  8. #8
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par Romanops
    Lorsque tu détruis l'objet 2, l'objet 1 est détruit ! Puisque l'égalité assigne uniquement l'adresse de l'objet 2 à l'objet 1...
    Ce n'est pas ce que me renvoi mes essais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    ob2 est un objet dynamique
    ob2 = allouer un CClient
     
    ob2:m_test="toto"
    ob1 = ob2
     
    libérer ob2
     
    Info( ob1:m_test)
    ob2 est bien cloné.
    ob1 étant la copie identique de ob2.
    L'attribut :m_test de ob1 vaut bien "toto" lorsque l'objet ob2 est détruit.
    Donc l'opérateur = effectue bien une copie de l'objet il n'affecte pas de référence...
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  9. #9
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    mhhh... Bizarre cette affaire, je me demande bien pourquoi mes tests me renvoyaient un résultat null au moment de la lecture de l'objet 2...

    Je pige pas :\ J'vais voir ça !
    En vous remerciant, bonsoir.

  10. #10
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Citation Envoyé par Romanops
    mhhh... Bizarre cette affaire, je me demande bien pourquoi mes tests me renvoyaient un résultat null au moment de la lecture de l'objet 2...

    Je pige pas :\ J'vais voir ça !
    Poste un minimum de code qu'on puisse jetter un coup d'oeil ensemble
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  11. #11
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    Mhh, je sais pas quoi mettre comme code, y'en a trop..., mais en gros voici ce qui se passe :

    J'envoi en parametre un objet Un_Client à une fenetre qui s'ouvre en modale.
    Dans cette fenêtre, j'ai un objet de même type (Un_Client) sur lequel je fais des traitements pdt toute l'excecution de la fenêtre.

    Avant la sortie, je fais un test : si l'objet de la fenetre est plein, je le copie dans mon objet paramètre.

    à la sortie de ma fenetre, mon objet paramètre (qui est maintenant plein, en toute logique) est en faite vide... (null) :\

    PS : mon objet paramètre est un objet dynamique, mais pas l'objet de la fenetre. Je sais pas si c'est important mais voilà... ^^
    En vous remerciant, bonsoir.

  12. #12
    Membre Expert

    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Juin 2003
    Messages
    4 506
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2003
    Messages : 4 506
    Points : 5 724
    Points
    5 724
    Par défaut
    Donc tu fais une allocation pour l'objet paramétre dans la fenetre c'est bien cela ?
    " Dis ce que tu veux qui insulte mon honneur car mon silence sera la réponse au mesquin.
    Je ne manque pas de réponse mais : il ne convient pas aux lions de répondre aux chiens ! " [Ash-Shafi'i ]

  13. #13
    Membre habitué Avatar de Romanops
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2002
    Messages
    278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 278
    Points : 165
    Points
    165
    Par défaut
    Non, je fais l'allocation, avant de rentrer dans la fenetre...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    		//On recherche un client
    		:m_Client = allouer Un_Client
     
    		//On passe en parametre l'objet client, pour que la fenetre recherche et le remplisse (sans les valeurs génériques)
    		Ouvre(fen_rech,:m_IdEntreprise,:m_Client)
    Et dans ma fenetre, en entrée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PROCEDURE fen_rech(p_IdEntreprise est un entier,p_Client)
     
    g_RenvoiClient est Un_Client
    Et avant la sortie :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sablier(Vrai)
    g_trace:Trace("..... On renvoi l'id du client qui est : " + g_RenvoiClient:m_IdClient,"RECHERCHE")
    SI g_RenvoiClient:m_IdClient > 0 ALORS
    	//On copie l'objet
    	p_Client = g_RenvoiClient
    FIN
    En vous remerciant, bonsoir.

Discussions similaires

  1. Comment cloner un objet ?
    Par rei.uchiwa dans le forum Langage
    Réponses: 2
    Dernier message: 29/04/2010, 22h48
  2. Cloner un objet
    Par jeandadaf dans le forum VB.NET
    Réponses: 10
    Dernier message: 18/10/2009, 14h26
  3. Cloner un objet
    Par womannosky dans le forum Langage
    Réponses: 12
    Dernier message: 20/09/2008, 17h45
  4. [POO] cloner un objet (et tous ses sous objets ?)
    Par Merfolk dans le forum Langage
    Réponses: 11
    Dernier message: 05/05/2008, 16h23
  5. Cloner un objet : comment créer l'instance ?
    Par phplive dans le forum Langage
    Réponses: 8
    Dernier message: 29/05/2005, 18h27

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