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 :

Créer un attribut de classe personnalisé


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 122
    Points : 81
    Points
    81
    Par défaut Créer un attribut de classe personnalisé
    Bonjour,

    Windev offre un certain nombre d'attributs à utiliser sur les classes et leurs membres (en particulier les attributs liés au databinding, comme l'attribut <MAPPING>).

    Est-il possible de déclarer soi-même ses propres attributs ?

    Exemple, je peux faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse est une Classe, mapping = MaTable
    Je cherche à faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MaClasse est une Classe, monAttribut = MaValeur
    J'ai l'impression que ce n'est pas possible :-(

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 816
    Points : 5 278
    Points
    5 278
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il faut passer par le constructeur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CClasse est Classe mapping Table
         m_MonAttribut est ... <MAPPING MaColonne>
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Constructeur(paramMonAttribut=0)
         :m_MonAttribut=paramMonAttribut
    Instanciation:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MaClasse est CClasse(MaValeur)
    Si tu veux ajouter des attributs à la partie mappée,il faut l'encadrer par <MAPPING> <FIN>
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 122
    Points : 81
    Points
    81
    Par défaut
    Bonjour,

    Merci, mais ce n'est pas ce que je cherche, tu me décris l'initialisation d'un membre d'une classe par le constructeur.
    Je souhaite déclarer un attribut de classe et le réutiliser à loisir dans mes classes.

  4. #4
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 816
    Points : 5 278
    Points
    5 278
    Billets dans le blog
    1
    Par défaut
    Tu veux en fait de créer un type de variable (cf Métatype) e.g. un nom qui sera une chaine sur 50.
    Si c'est cela, il faut voir du côté des variable "Description de variable" et de la fonction RécupèreDéfinition
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 122
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    Tu veux en fait de créer un type de variable (cf Métatype) e.g. un nom qui sera une chaine sur 50.
    Si c'est cela, il faut voir du côté des variable "Description de variable" et de la fonction RécupèreDéfinition
    Merci, mais non, les variables "Description de variable" et la fonction "RécupèreDefinition" ne me permettent pas de faire ce que je veux, Windev ne semble pas autoriser la création d'attributs personnalisés.
    Tant pis.

  6. #6
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 816
    Points : 5 278
    Points
    5 278
    Billets dans le blog
    1
    Par défaut
    Peut être un truc dans le genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CMetaType est une Classe
    	m_n8PK est un entier sur 8
    	m_sNom est chaîne sur 50
    	m_sPrénom est chaîne sur 50
    	m_sNoInsee est chaîne sur 13
    	m_sNoInseeAvecClé est une chaîne sur 15 
    FIN
    Utilisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    CClient est une Classe
    	PRIVÉ
    	m_clModele est CMetaType
     
    	m_NomClient est Description de Variable	//Chaine sur 50
            ....
    FIN
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    PROCÉDURE Constructeur()
    defMetaType est Définition
    defMetaType=RécupèreDéfinition(m_clModele)
     
    :m_NomClient=defMetaType..Variable["m_sNom"]
    Propriétés:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    PROCÉDURE PUBLIQUE p_NomClient() : chaîne
     
    RENVOYER {m_clModele,:m_NomClient..Nom}
     
    PROCÉDURE PUBLIQUE p_NomClient(sValeur est une chaîne)
     
    {m_clModele,:m_NomClient}=Valeur
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 122
    Points : 81
    Points
    81
    Par défaut
    Je crois voir ce que tu essaies de faire avec ton code - il y a de l'idée mais une fois encore, moi je veux pouvoir créer et utiliser de vrais attributs, au sens Windev (concept également équivalent aux attributs qu'on trouve en .net / C#, si tu connais, et qui permettent de faire beaucoup de choses), avec la simplicité d'utilisation qui va avec.
    Là, le mécanisme est trop complexe à mettre en oeuvre pour mes besoins, qui sont finalement assez simples (mais récurrents).

    Qui sait, peut être en Windev 26...

    Tant pis, mais merci pour ton aide.

  8. #8
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 816
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 816
    Points : 5 278
    Points
    5 278
    Billets dans le blog
    1
    Par défaut
    Tu voudrais en fait l'équivalent d'un typedef C.
    La POO n'a jamais été le fort de Windev. Il s'en sert en "accessoire" pour pouvoir traiter les données (c'est au départ son boulot)
    En ce qui concerne la 26, tu es un grand optimisme. Ils essaye déjà de corriger les problèmes connus de la V22 (tient, je vire aussi à l'optimisme)
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    122
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 122
    Points : 81
    Points
    81
    Par défaut
    Citation Envoyé par Voroltinquo Voir le message
    La POO n'a jamais été le fort de Windev. Il s'en sert en "accessoire" pour pouvoir traiter les données (c'est au départ son boulot)
    C'est un bon résumé... et c'est bien dommage.

Discussions similaires

  1. [WS 2003] Comment créer des attributs personnalisé Active directory
    Par ouadie99 dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 10/08/2009, 22h37
  2. assignation PHP4 attribut de class
    Par XtofRoland dans le forum Langage
    Réponses: 3
    Dernier message: 08/02/2006, 15h16
  3. Réponses: 3
    Dernier message: 08/12/2005, 14h41
  4. [css]problème d'attribution de classe dans deux listes
    Par Mitaka dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 24/11/2005, 18h05
  5. Réponses: 9
    Dernier message: 02/09/2005, 15h44

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