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 :

Code d'initialisation et plusieurs configurations de projet


Sujet :

WinDev

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 237
    Points : 305
    Points
    305
    Par défaut Code d'initialisation et plusieurs configurations de projet
    Bonjour,

    Je m'essaye à l'utilisation de configurations multiples pour un même projet.
    Apparemment, le code d'initialisation du projet est commun à toutes les configurations.
    Comment éviter qu'il s'exécute pour une configuration donnée ?

  2. #2
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Pour cela on peut utiliser l'instruction ;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    	<COMPILE SI Configuration="MaConfig">
    	<FIN>

  3. #3
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 805
    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 805
    Points : 5 253
    Points
    5 253
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Il faut passer par la compilation conditionnelle
    e.g.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <COMPILE SI TypeConfiguration=ApplicationLinux>
         <COMPILE SI Configuration="MaConfig1" OU Configuration="MaConfig2">
          //Instruction communes aux configuration "MaConfig1" et "MaConfig2"
        <SINON>
          //Intructions communes aux autres configurations Linux
    <SINON>
         //Intructions communes aux configurations non Linux
    <FIN>
    //Instructions communes à toutes les configurations.
    Ce type de configuration peut aussi être utilisé dans le code. e.g. Utilisation de la BDR pour les applications Windows, écriture dans un fichier INI sinon.

    Remarque Pour les versions antérieures à 21, COMPILE SI n'est pas disponible, tout se fait dans des "Volets de code" multiples et on n'a pas accès au nom de la config. On accède à ces volets via "Code cible" dans l'onglet "Code"
    Nom : screenshot_13-04-2021 14h59_n°01.png
Affichages : 588
Taille : 10,5 Ko
    Jusqu'à la version 24 incluse, les 2 modes sont disponibles.
    Il y a peut-être plus simple, mais ça tourne.
    Quand tout a échoué utilisez l'option RTFM

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 237
    Points : 305
    Points
    305
    Par défaut
    Je pensais bien devoir utiliser <COMPILE SI>, merci.

    Et si je veux 'sauter' tout un bloc de code dans le code d'initialisation du projet, on ne peut pas utiliser RETOUR car il n'y a nulle part où 'retourner' !

    Je m'en vais utiliser un GOTO ! Non, non, pas la tête !


    ps: il n'y a pas le préfixe [WD26] en création de discussion.

  5. #5
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Citation Envoyé par lubinfo Voir le message
    Et si je veux 'sauter' tout un bloc de code dans le code d'initialisation du projet, on ne peut pas utiliser RETOUR car il n'y a nulle part où 'retourner' !
    Le Compile SI permet ce genre de chose (si le code n'est à être exécuté que pour certaines configratuion)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <compile si Configuration="MaConfig1" _OU_ Configuration="MaConfig2" _OU_ Configuration="MaConfig3">
    Edit : Avec des OU plutôt que des ET

    De même, on pet faire ceci si le code est à exécuter pour toute les config sauf une
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <COMPILE SI Configuration<>"MaConfig">
    ou cela
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <compile si pas Configuration="MaConfig1" _et_ PAS Configuration="MaConfig2" _et_ pas Configuration="MaConfig3">
    Le GOTO, c'est le mal donc, si ce n'est la tête, ça sera au moins les doigts.

  6. #6
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    Et je répondrais aussi à la question qui n'a pas été posé qui est :"Comment démarrer sur une fenêtre différentes selon la configuration ?"

    Toujours via un Compile Si.
    Nous indiquons notre fenêtre principal qui sera celle de la configuration "principal" et à la fin du code d'intialisation, nous aurons ce code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <COMPILE SI Configuration="MaConfig1">
    	Ouvre(MaFenPrincipal1)
    	FinProgramme()
    <FIN>
    <COMPILE SI Configuration="MaConfig2">
    	Ouvre(MaFenPrincipal2)
    	FinProgramme()
    <FIN>
    <COMPILE SI Configuration="MaConfig3">
    	Ouvre(MaFenPrincipal3)
    	FinProgramme()
    <FIN>

  7. #7
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 393
    Points
    9 393
    Par défaut
    Tu peux mettre tout ton code d'init du projet dans une procédure init_projet()
    Et là tu pourra mettre des RETOUR autant que tu veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure init_projet() 
     
    <COMPILE SI Configuration="MaConfig1">
    	init_config1()
            retour
    <FIN>
    <COMPILE SI Configuration="MaConfig2">
    	init_config2()
            retour
    <FIN>
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    237
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 237
    Points : 305
    Points
    305
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Tu peux mettre tout ton code d'init du projet dans une procédure init_projet()
    Et là tu pourra mettre des RETOUR autant que tu veux.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    procedure init_projet() 
     
    <COMPILE SI Configuration="MaConfig1">
    	init_config1()
            retour
    <FIN>
    <COMPILE SI Configuration="MaConfig2">
    	init_config2()
            retour
    <FIN>
    Oui mais quid de l'initialisation des variables/constantes globales au projet mais spécifiques ou pas à une configuration.

    Pour la première fenêtre du projet apparemment le clic droit, Première fenêtre du projet est bien spécifique à la configuration en cours.

  9. #9
    Membre éclairé
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2017
    Messages
    325
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2017
    Messages : 325
    Points : 785
    Points
    785
    Par défaut
    Pour les RETOUR multiples, non dans les procédures. Une procédure à un point d'entrée un point de sortie. Les RETOUR rendent plus difficile le debug et la factorisation des codes. Pour les COMPILE SI, le mettre à la fin je ne comprends pas pourquoi puisqu'ensuite l'exécution du code s'arrête si il n'y a pas d'autres codes après et que les COMPILE SI suivants ne sont pas pour la même conf.
    Pour les globales au projet ou a une config de projet, il ne faut pas tout coller dans le code d'init du projet même si c'est possible de le faire dans les différents COMPILE SI. Si des globales sont nécessaires c'est peut être que la fonctionnalité qu'elles couvrent peut être encapsulées dans une classe (qui est ou pas un singleton). Les globales compliquent également la factorisation car quand on les multiplie et qu'on les utilise, on est obligé de vérifier les portions de code qui s'en servent pour être sûr de ne pas causer d'effets de bord.

    C'est de la dette technique qui s'accumule dans les 2 cas.
    Quand aux GOTO, sans commentaire, ce que j'en pense devrait se deviner

  10. #10
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Citation Envoyé par lubinfo Voir le message
    Oui mais quid de l'initialisation des variables/constantes globales au projet mais spécifiques ou pas à une configuration.

    Pour la première fenêtre du projet apparemment le clic droit, Première fenêtre du projet est bien spécifique à la configuration en cours.
    Là, il ne faut pas t'embêter : tu les mets toutes dans le code d'init du projet. Le seul conseil que je peux te proposer, c'est le les regrouper par configuration.

    Dans notre projet principal, on a 4 configurations. Il y a 3 premières fenêtres de projet différentes.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

Discussions similaires

  1. code::blocks ne me sauvegarde pas la configuration du projet.
    Par Invité dans le forum Code::Blocks
    Réponses: 1
    Dernier message: 04/02/2019, 17h01
  2. executer le code d'initialisation du projet
    Par popov2 dans le forum WinDev
    Réponses: 2
    Dernier message: 30/05/2007, 09h35
  3. Pb de configuration de projet Glut sous DevCpp
    Par quantik-revolution dans le forum GLUT
    Réponses: 35
    Dernier message: 14/09/2006, 13h18
  4. Bonne pratique, configuration de projets
    Par gailuris dans le forum EDI et Outils pour Java
    Réponses: 7
    Dernier message: 15/12/2005, 10h57
  5. code qui s'execute plusieurs fois
    Par khelif dans le forum JBuilder
    Réponses: 1
    Dernier message: 10/03/2005, 21h56

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