Pas d'inquiétude, avec PBAdonf, c'est dans la poche ! ^^

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 19-02-2009 12:28:35

dark ryus  
Membre completement Geek
Lieu: Nancy
Date d'inscription: 30-09-2008
Messages: 129
Pépites: 700
Banque: 0
Site web

[RESOLU] Savoir quel objet appelle une fonction

Bonjour,

J'ai un objet uo_objet qui appel une fonction uf_fonction().
Je voudrais savoir comment faire depuis la fonction, pour modifier un champ texte par exemple qui se trouve dans l'objet.

Merci

Dernière modification par dark ryus (19-02-2009 15:59:09)

Hors ligne

 

#2 19-02-2009 12:52:34

buck  
Modérateur
Lieu: Dijon
Date d'inscription: 31-07-2008
Messages: 748
Pépites: 1,028,846
Banque: 171,170,849,654

Re: [RESOLU] Savoir quel objet appelle une fonction

Bonjour,

Tu modifies les arguments de ta fonction pour passer une référence de l'objet dans les arguments de la fonction.

Par contre, je te déconseille de structurer un programme de cette manière. Tu crées des dépendances et tu rends très difficile la moindre modification du programme.

Ex : si tu modifies le nom de la variable d'instance dans un user object, il te faudra également la modifier dans la fonction dans laquelle tu modifies le contenu de cette variable dans laquelle tu as passé une référence de l'objet.

Hors ligne

 

#3 19-02-2009 14:15:57

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5122
Pépites: 97,200
Banque: 2,147,483,647

Re: [RESOLU] Savoir quel objet appelle une fonction

effectivement, comme le dit buck cela crée des dépendances
si tu veux rester le plus générique tu peux éventuellement procéder ainsi :

Code: pb

public function integer uf_fonction (powerobject ao_appelant, + les autres paramtres);

Choose Case ao_appelant.ClassName()
    
  Case 'uo_objet' 
    
    // cast dans le type uo_objet
    uo_objet luo_objet
    luo_objet = ao_appelant
    
    // traitement
    luo_objet.ii_variable = 123

    // encore mieux avec un getter ;-)
    luo_objet.of_set_variable( 123 )
        
  Case 'n_obj' 
    
    // ...
    
  Case Else
    
    // ...
    
End Choose


Return 1
end function

N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 19-02-2009 15:18:27

dark ryus  
Membre completement Geek
Lieu: Nancy
Date d'inscription: 30-09-2008
Messages: 129
Pépites: 700
Banque: 0
Site web

Re: [RESOLU] Savoir quel objet appelle une fonction

Merci pour l'aide.

Bon faut que je précise un peu le problème mais je vois que vous avez compris le principe.

Déjà, je sais que c'est pas bien de mettre la fonction à pars, mais c'est pas moi qui choisi ^^

En gros, j'ai une HProgressbar dans mon objet, et je veux la faire évoluer car il y a plusieurs fonctions appelées. Donc il faut que je récupère ce contrôle pour l'utiliser dans mes fonctions et faire évoluer sa barre de progression.

Je suis débutant alors je ne sais pas du tout comment faire pour passer ma HProgressbar dans l'appel de la fonction, et je ne sais pas comment la récupérer pour l'utiliser.

Pour le post précédent, je n'ai pas de powerobject dans mes attributs de fonction mais userobject.

Hors ligne

 

#5 19-02-2009 15:57:36

dark ryus  
Membre completement Geek
Lieu: Nancy
Date d'inscription: 30-09-2008
Messages: 129
Pépites: 700
Banque: 0
Site web

Re: [RESOLU] Savoir quel objet appelle une fonction

Vos idées m'ont inspiré et j'ai fini par trouver.

Merci à tous

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22