Evènements et paramètres
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour

Je gère, dans une classe, une méthode "Méthode1" avec un paramètre. En direct, aucun problèmes.
Mais cette méthode est aussi lancée par une méthode d'évènement de fenêtre :
PROCEDURE CreeEvenements
Evenement(":Methode2",<objet>,<message>)

PROCEDURE Methode2(_Message, _wParam, _lParam)
...
:Methode1(Param)


Comment, en créant l'évènement, assurer le transport dd'un valeur jusqu'à l'appel de ma méthode "Méthode1" ?

NB : la classe est un objet global au projet, 'utilisation d'un membre pour stocker mon paramètre semble un soucis car l'évènement peut être créé pour plusieurs fenêtre qui utiliseraient une valeur différente...

Si quelqu'un a suivit, chapeau bas.

Contribution le : 04/10/2005 14:07
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Salut R&B,

J'ai une solution pour toi.
Crée une zone mémoire par variable à transmettre avec pour nom "ZM_CL_"+ Nom_de_la_fenêtre, puis tu y rajoutes ta où tes variables.
Après, il est facile de récupérer les valeurs.

P.S. : ne pas oublier de purger les zones mémoires quand elles ne sont plus nécessaires.

a+

tof

Contribution le : 04/10/2005 15:07
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres

Inscrit:
19/11/2002 12:20
Post(s): 390
Hum....

Et en passant par une zone mémoire?


Dans la construction de la classe:
MemCrée("toto")


Dans CreeEvenements à chaque ajout d'évément:
MemAjoute ("toto", nom_fenetre, valeur_a_memoriser)



Du coup pour Methode1 il suffirait de faire une recherche pour trouver la bonne valeur:
PROCEDURE Methode2(_Message, _wParam, _lParam)
...
//on recherche si dans la zone mémoire on a un champ correspondant au nom de la fenêtre
//déjà on récupère dans _EVE.Nom le nom de la fenêtre concernée par l'event...
Param=MemRecherche ("toto", _EVE.Nom,vrai)
:Methode1(Param)


Bon, c'est moche car je n'ai pas testé le retour de MemRecherche, mais c'est ce à quoi je pense là tout de suite...
Reste que bien sûr si deux fenêtres ont le même nom c'est un peu dommage, mais déjà regarde si ça pourrait convenir dans ton code.

Contribution le : 04/10/2005 15:24
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres

Inscrit:
19/11/2002 12:20
Post(s): 390
Méchant Totof

Contribution le : 04/10/2005 15:25
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
ma méthode est plus rapide à l'exécution

mais en tout cas on a tous les 2 eut la bonne idée d'utiliser les ZM.
Les bons esprits se rencontrent :)

a+

Tof

Contribution le : 04/10/2005 16:05
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Précisément.
Merci à vous deux...

Contribution le : 04/10/2005 17:00
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres

Inscrit:
19/11/2002 12:20
Post(s): 390
De nada ;)

méchant totof

Contribution le : 04/10/2005 17:36
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
OK Je vais aller plus loin dans le problème.
La classe est opérante sur tout le projet.
Elle génère des évènement dans une partie de ces projet (en initialisation de fenêtre).

Je vais utiliser la méthode Totof effectivement rapide car me libérant d'une recherche.
Ainsi, je vais donc créer des zones mémoires pendant l'exécution... sans moyen de libération, ce qui est dangeureux.

Fonctionnant en modal, pas de risque de doublons. De toute façon j'utilise un MemExiste + MemSupprime avant chaque ajout de ZM.

Comment libérer les ZM sauf à en passer par un tableau dynmamique qui en serait la liste ? Je n'ai pas envie d'ajouter un code à chaque fermeture de fenêtre pour libérer les ZM.

Contribution le : 05/10/2005 08:42
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres
Anonyme
LA question est : tu veux les libérer à quel moment ?

Contribution le : 05/10/2005 08:54
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres
Animateur WDF
Inscrit:
02/03/2003 04:07
De Noisy le grand(93)
Post(s): 2745
Bonjour,

Il est vrai qu'un tableau dynamique de structure aurait été plus approprié.

cependant pour libérer une ZoneMémoire ne suffit-il pas de d'utiliser MemSupprimeTout(Nom de la zone mémoire)?

Contribution le : 05/10/2005 15:07
_________________
@A+
Contact (privé)......
email : drcharly@wdforge.org
[DrCharly93]
Créer un fichier PDF de la contribution Imprimer


Re: Evènements et paramètres
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Effectivement, d'autant que mon tableau n'exèdera jamais une vingtaine de lignes... à chaque lancement de la méthode, il me sera possible d'assurer le ménage dans mon tableau en y conservant le nom des fenêtres concernées et utilisant FenEtat() pour m'assurer qu'elle sont encore actives.

Contribution le : 05/10/2005 21:12
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2