POO et messtraduit
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Bonjour

Soit un objet utilisé dans un projet.
Son utilisation est liée à des messages gérés par MessTraduit.

Le soucis tiens dans le fait que ces messages ont été affecté dans les fenêtres où l'objet est instancié et non dans l'objet lui même. Si le prorgamme fonctionne, cela n'est pour autant satisfaisant en terme de portabilité.

Ma question est donc : comment, dans vos objets, déclarez et accédez-vous aux messages MessTraduit depuis la programmation de leurs instances?

l'objectif est de permettre une utilisation facile pour le développeur. L'utilisateur ne se soucie en rien de ce problème.

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


Re: POO et messtraduit
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
C'est pour moi un grand honneur que de pouvoir répondre enfin à une question de R&B.

Les classes, comme les fenêtres ont leurs propres espaces de stockage des messages.
Les fenêtres en 2000, 2001, ...
Les classes en 5000, 5001, ...

vous pouvez donc utiliser la fonction MessTraduit comme vous le feriez dans une procèdure locale à une fenêtre.
L'outil WDMESS permet l'extraction des messages de classes comme ceux de fenêtre.

Bon Dev

Contribution le : 21/11/2005 13:35
Créer un fichier PDF de la contribution Imprimer


Re: POO et messtraduit
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Domage Bebe,
C'est précisément ce que je veux faire que de transiter les 200X en 500X. Je sais copier coller les messages donc le problème n'est pas non plus là.

Le soucis est, dans le code utilisant l'objet, trouver une méthode non contraignante pour utiliser les messtraduit de l'objet (et centraliser les messages le concernant).

Mon truc actuel est simple mais ne me convient pas :
Utiliser des constantes de la classe avec des nom bien construit et une méthode dédiée :
cClasseMessage est une Classe
   PUBLIC
   ... les membres publiques...
   CONSTANT
      // MessTraduit(5000) // Mon premier message
      MESS_PREMIER = 5000
      // MessTraduit(5001) // Mon second message
      MESS_PREMIER = 5001
   FIN
FIN

// Méthode qui retourne le texte des message
PROCEDURE Mess_Num(pNum=::MESS_PREMIER)
Renvoyer MessTraduit(pNum)

Utilisation
oMess est un cClasseMessage
...
info(ChaineConstruit(oMess:Mess_Num(cClasseMessage::MESS_SECOND),partie1, partie2...))


Note : tenir compte de l'utilisation du nom de la classe pour aller chercher la constante et non celui de son instance.


Cette solution fonctionne et assure le trasnsport des messages avec la classe utilisatrice. Ce qui m'ennuie, c'est la méthode un peu lourde : construction du nom de la constante etc.

Evidement j'en reste là si on ne trouve mieux.

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


Re: POO et messtraduit
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
Je ne comprends pas pouquoi vous voulez mettre vos messages dans la fenêtre qui instancie l'objet ?
Pouvez-vous me donner un exemple ?

Contribution le : 21/11/2005 14:02
Créer un fichier PDF de la contribution Imprimer


Re: POO et messtraduit
Animateur WDF
Inscrit:
19/01/2004 13:48
De www.sigmasys.fr
Post(s): 988
Une petite idée R&B.

Je ne sais pas si ca te conviendra mais voilà :
Déclarer un tableau de 6000 entiers (par exemple) dans la classe.
exemple :
cClasseMessage est une Classe
   PUBLIC
   ... les membres publiques...
      MonTab est un tableau de 6000 entiers //ou dynamique
   FIN
FIN

// Méthode qui retourne le texte des message
PROCEDURE Mess_Num(pNum=2000)
Renvoyer MessTraduit( ::MonTab[pNum])


A ce moment tu peux imaginer, MonTab[2000]=2000 et MonTab[5000]=2000. Ce principe est simple mais il faut déclarer un tableau dont on utilise pas toute la taille mais bon vu la mémoire que l'on a :)

a+

Totof

Contribution le : 21/11/2005 14:10
Créer un fichier PDF de la contribution Imprimer


Re: POO et messtraduit
Anonyme
Noté ! merci

Contribution le : 21/11/2005 14:48
Créer un fichier PDF de la contribution Imprimer


Re: POO et messtraduit
DSI WDF
Inscrit:
03/12/2004 07:46
Post(s): 235
J'ai vraiment du mal à comprendre, vous voulez déléguer à la fenêtre qui utilise la classe l'affichage des messages de la classe ?
Celà n'est-il pas contraire au principe d'encapsulation de la POO ?

Contribution le : 21/11/2005 15:55
Créer un fichier PDF de la contribution Imprimer


Re: POO et messtraduit
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Je ne l'aurais dis en ces termes
Il s'agit simplement de réutiliser les messages de la classe quelque soit son contexte d'utilisation. Du coup les 5000 sont les bienvenus... mais comme ils ne vont apparaitre seuls, c'est bien la programmation des instance qui va appeler les messages via :Mess_Num()

Contribution le : 21/11/2005 16:27
_________________
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