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 :

Applications avec modules [WD21]


Sujet :

WinDev

  1. #1
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 346
    Points : 3 867
    Points
    3 867
    Par défaut Applications avec modules
    Bonjour à tous,

    J'ai une application à laquelle je souhaite ajouter des modules.
    Ces modules ne seront accessibles que par le biais de la licence.

    J'avais dans l'idée d'attribuer un nombre impair à chaque module et d'en faire la somme mais on arrive vite à plusieurs combinaisons possibles (ex : 20 = 7 + 13 = 9 +11).

    Auriez-vous une idée à me proposer ?

    merci à tous

  2. #2
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 451
    Points
    2 451
    Par défaut
    Bonjour,

    ETBinaire() ou l'opérateur [] d'accès direct aux bits, sur un entier (sur 8 octets) donnerait déjà 64 possibilités.

    Pour un début ...

    Hemgé

  3. #3
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 346
    Points : 3 867
    Points
    3 867
    Par défaut
    Bonjour Hemgé et merci pour ton aide.

    J'ai regardé de ce côté mais ça ne résout pas mon problème de combinaison multiple pour le nombre 20 (9+11 ou 7+13), non ?
    Sauf si je passe à côté de quelque chose d'évident car 64 possibilités sont largement suffisants.

    Que dois-je déduire de ces résultats ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ETBinaire(20, 7) = 4
    ETBinaire(20, 13) = 4
     
    ETBinaire(20, 9) = 0
    ETBinaire(20, 11) = 0

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 256
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 256
    Points : 12 919
    Points
    12 919
    Par défaut
    L'idée d'Hemgé est d'affecter une puissance de 2 comme valeur à chaque module, ainsi chacun est représenté par un bit dans la valeur finale.
    Par exemple 25 = 16 + 8 + 1 = 00011001 en binaire.

    Tatayo.

  5. #5
    Membre expert

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2004
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 346
    Points : 3 867
    Points
    3 867
    Par défaut
    ah mais oui bien sûr super.

    Merci à tous les 2

  6. #6
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    552
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 552
    Points : 964
    Points
    964
    Par défaut
    Et voila la fonction qui va bien pour faire le test avec des puissances de 2

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    FUNCTION CheckModule(LOCAL nMainValue is unsigned int, LOCAL nValueToCheck is unsigned int)
        nRet is int = 0
        IF (nMainValue AND nValueToCheck) = nValueToCheck THEN nRet = -1
    RESULT nRet
    C'est de cette façon que l'OS vérifie le style des fenêtres lors de leur création, WS_POPUP | WS_VISIBLE | WS_CAPTION, etc.

  7. #7
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 451
    Points
    2 451
    Par défaut
    Bonjour,

    Juste pour le fun (parce que cette fonction ne va pas être appelée de manière répétitive), l'opérateur [] d'accès direct aux bits serait peut-être plus rapide.
    Tout dépend des arcanes de Windev.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FUNCTION CheckModule(LOCAL nMainValue is int, LOCAL nValueToCheck is int) : Booléen 
    bOk est Booléen = nMainValue[nValueToCheck]
    Renvoyer bOk
    avec nMainValue = clé des licences et nValueToCheck = n° du module à contrôler

    Hemgé

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 451
    Points
    2 451
    Par défaut
    Encore et toujours pour le fun :

    Il n'est même pas nécessaire d'utiliser une variable intermédiaire. (testé)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FUNCTION CheckModule(LOCAL nMainValue is int, LOCAL nValueToCheck is int) : Booléen 
    Renvoyer nMainValue[nValueToCheck]
    Bon WE

    Hemgé

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/07/2007, 11h52
  2. [FLASH 8] application flash avec modules
    Par youp_db dans le forum Flash
    Réponses: 1
    Dernier message: 10/04/2006, 20h19
  3. Plantage application avec défaillance du module Kernel32
    Par cosminutza dans le forum Langage
    Réponses: 3
    Dernier message: 28/11/2005, 16h15
  4. Conseils pour developper une application avec Oracle
    Par belugha dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 02/06/2003, 16h03
  5. [VB6]Fermer une application avec VB
    Par Mylou dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 04/04/2003, 21h32

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