OVH Cloud OVH Cloud

[WB10] Variables dans un composant

7 réponses
Avatar
n0n0
Bonjour =E0 tous,

J'ai cr=E9=E9 un projet Webdev permettant de gerer mes utilisateurs sur
un intranet.
Les infos de connexion sont g=E9r=E9es par une variable gclUser globale
=E0 mon projet.

Jusque l=E0 tout va bien.

J'ai ensuite cr=E9=E9 un composant =E0 partir de ce projet.

Puis je me lance dans mon projet d'intranet, j'integre le composant
cr=E9=E9 ci dessus, mais impossible de voir ma variable gclUser.

Cette variable est elle uniquement globale au composant? Comment faire
pour pouvoir l'utiliser dans mon projet d'intranet?

Merci d'avance pour votre aide.
n0n0

7 réponses

Avatar
Roumegou Eric
Il se trouve que a formulé :
Bonjour à tous,

J'ai créé un projet Webdev permettant de gerer mes utilisateurs sur
un intranet.
Les infos de connexion sont gérées par une variable gclUser globale
à mon projet.

Jusque là tout va bien.

J'ai ensuite créé un composant à partir de ce projet.

Puis je me lance dans mon projet d'intranet, j'integre le composant
créé ci dessus, mais impossible de voir ma variable gclUser.

Cette variable est elle uniquement globale au composant? Comment faire
pour pouvoir l'utiliser dans mon projet d'intranet?



c'est un peu prise de tête, mais c'est possible.
Il y a des case à cocher sur lesquelles il faut jouer dans la
generation de ton composant.


Merci d'avance pour votre aide.
n0n0




--
Eric Roumégou
Webmaster des Wtablettes
http://cerbermail.com/?qE7t4Qvilo
(cliquez sur le lien ci dessus pour me contacter en privé)
Avatar
n0n0
Merci Eric pour ta reponse.

J'ai deja fait plusieurs essais de generation de mon composant en
variant les cases a cocher, mais sans plus de succès. J'ai meme
essayé en cochant toutes le case pour rendre visible le maximum de
choses.

Mais j'ai un doute: je n'ai peut etre pas declaré ma variable globale
au bon endroit. Elle est declaré dans le code d'initialisation du
projet du composant (là ou on trouve les appels à RADProjetInit et
les HCréationSiInexistant). Est ce le bon endroit?

n0n0
Avatar
Pascal F
n0n0 a exprimé avec précision :
Merci Eric pour ta reponse.

J'ai deja fait plusieurs essais de generation de mon composant en
variant les cases a cocher, mais sans plus de succès. J'ai meme
essayé en cochant toutes le case pour rendre visible le maximum de
choses.

Mais j'ai un doute: je n'ai peut etre pas declaré ma variable globale
au bon endroit. Elle est declaré dans le code d'initialisation du
projet du composant (là ou on trouve les appels à RADProjetInit et
les HCréationSiInexistant). Est ce le bon endroit?

n0n0



Si tu as indiqué que le code du projet est intégré au composant, la variable devrait etre accessible (je n'ai pas essayé), mais
pour éviter ce genre de problème je préfère perso utiliser des classe dans mes composants, et je mets certains membres en global
public ce qui m'évite ce genre de désagrément. Les membres global public étant toujours dans la portée du projet.

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
n0n0
Le code de mon projet bien est integré au composant et je n'accède
pas à ma variable. Par contre je peux definir une autre variable à
partir de ma classe qui elle est visible.

Je ne comprends pas très bien la technique que tu evoque. Ma classe
est bien visible, mais si je ne peux pas passer d'instance de cette
classe entre le composant et le projet, comment faire transiter des
données.

n0n0
Avatar
Pascal F
n0n0 a formulé ce vendredi :
Le code de mon projet bien est integré au composant et je n'accède
pas à ma variable. Par contre je peux definir une autre variable à
partir de ma classe qui elle est visible.

Je ne comprends pas très bien la technique que tu evoque. Ma classe
est bien visible, mais si je ne peux pas passer d'instance de cette
classe entre le composant et le projet, comment faire transiter des
données.

n0n0



si tu mets dans la déclaration de la classe MaClasse de ton composant
PUBLIC GLOBAL
MaVariable
FIN

dans le projet utilisant le composant la classe est intégrée automatiquement donc même sans avoir instancié d'objet pour la
classe MaClasse tu accède au membre public global de la façon suivante:
MaClasse::MaVariable

Attention: c'est le nom de la classe et non le nom de l'instance donc sce sera toujours MaClasse et il faut DEUX double points.

--
Pascal

Ne garder que le prénom pour me joindre
Avatar
n0n0
Ca ne me semble pas très élégant comme methode, mais ca a un enorme
avantage:

CA FONCTIONNE.

Merci pour vos réponses
Avatar
Maax°\(51\)°
Salut

C'est quand même une mauvaise voie, si on n'a pas de POO dans son composant.
Les variables globales publiques des collections de procédures sont visibles
dans un composant..

Donc pour ta globale, déplace là dans une collection de procédures
visible...

Le seul endroit "sécurisé" ou on peut mettre des variables sans que ca soit
vu au travers du composant, c'est le code de projet..

@+
Maax°(51)°

---------

"n0n0" a écrit dans le message de news:

Ca ne me semble pas très élégant comme methode, mais ca a un enorme
avantage:

CA FONCTIONNE.

Merci pour vos réponses