- Présentation
- Mise en place
- Inclusion des fichiers de l'interface C# de WinDev
- Chargement de la bibliothèque WinDev (WDL)
- Exécution de codes WINDEV depuis le langage externe
- 1. Appel d'un code WLangage
- 2. Récupération des événements déclenchés dans les fenêtres WINDEV
- Mettre fin à l'application
Langage externe : Programmation en C#
Il s'agit ici d'appeler les éléments développés en WINDEV (projet, fenêtres, analyse, ...) depuis le langage C#. Rappel : C# est un langage de la plateforme .NET. Le code WLangage utilisé depuis le langage externe sera compilé dynamiquement et exécuté lors de son appel.
Ce mode est illustré dans le projet Ville.cs (au format C#) fourni dans le sous-répertoire "LangagesExternes\C#" du répertoire d'installation de WINDEV.
Remarques : - Le langage externe C# ne permet pas d'utiliser le moteur HFSQL. Pour manipuler le moteur HFSQL, réalisez les traitements nécessaires dans WINDEV.
- Compatible Visual C++ versions 4.2 et 6.0 et supérieur.
Inclusion des fichiers de l'interface C# de WinDev Le fichier suivant doit être présent dans le répertoire d'exécution de votre programme C# pour faire appel à l'interface C# de WINDEV : - WinDev.CS
- wdxxxle.dll
- wdXXXICS.DLL
Il est nécessaire d'appeler les méthodes de la classe WinDev en préfixant ces méthodes du mot "WinDev.":
WinDev.APPELWD("BIBLI,Disque,ville.wdl");
Chargement de la bibliothèque WinDev (WDL) La bibliothèque WINDEV (.WDL) contient tous les éléments du projet (fenêtres, états, classes, requêtes, analyse, ...). Il faut donc la charger en mémoire pour faire appel aux composants qu'elle contient. Attention : Si vous devez charger des fenêtres en dehors de la bibliothèque, le code de chacune de ces fenêtres doit être intégré dans le fichier ".WDW" correspondant (option "Intégrer le code compilé" cochée, dans l'onglet "Détail" de la description de chaque fenêtre).
// Ouverture de la bibliothèque // si WDEntier n'est pas nul, la bibliothèque n'a pas été trouvée! WinDev.APPELWD("BIBLI,Disque,ville.wdl"); if (WinDev.WDEntier() == 0) { ... } else { // Bibliothèque non trouvée WinDev.APPELWD("Erreur, Bibliothèque non trouvée"); } // Terminer... WinDev.WDTermine();
Exécution de codes WINDEV depuis le langage externe 1. Appel d'un code WLangage Toutes les fonctions WLangage peuvent être appelées depuis le langage externe. Leur comportement et les valeurs retournées par ces fonctions du WLangage sont exactement identiques qu'elles soient appelées : - depuis WINDEV ou
- depuis l'interface langage externe
Pour connaître les paramètres et les valeur de retour d'une fonction du WLangage, il suffit donc de se reporter à l'aide en ligne ou la documentation papier habituelle relative au WLangage. L'appel à une procédure du WLangage depuis l'interface externe se fait par la fonction APPELWD. Par exemple :
// Ouverture de la première fenêtre du programme contenant le menu WinDev.APPELWD("OUVRE,menufc.wdw");
2. Récupération des événements déclenchés dans les fenêtres WINDEV La saisie dans les fenêtres WINDEV rend nécessaire la récupération des événements déclenchés dans ces fenêtres. Afin de récupérer les événements (clic sur un menu, un bouton ...) de l'utilisateur, vous devez mettre en place un système basé sur une boucle dans votre programme C#. Cette boucle sera active tant que la fenêtre WINDEV sera ouverte et permettra d'intercepter chaque action de l'utilisateur. Pour connaître le type d'action de l'utilisateur, vous disposez d'une variable de type chaîne de caractères (en WLangage) nommée 'WDTouche'. Cette variable sera utilisée dans votre code WLangage pour signaler au programme C# quel bouton a par exemple été actionné. Exemple : Code C#
// Ouverture de la première fenêtre du programme contenant le menu WinDev.APPELWD("OUVRE,menufc.wdw"); // le programme boucle jusqu'à ce que le choix Fichier Quitte // soit sélectionné while (bSaisie) { // on effectue la saisie du menu WinDev.APPELWD("Ecran,Saisie"); // le compte-rendu WDTouche vaut *M* lorsque un choix de menu //a été sélectionné string szOption = WinDev.WDTouche(); if (szOption == "*M*") { ... } } WinDev.APPELWD("FERME");
Code d'interception de la sélection du menu "Fichier..Quitter" de la fenêtre WINDEV "Menu" :
// abandon if (WinDev.WDTouche() == "FQ") { bSaisie = false; }
Lorsque l'utilisateur cliquera sur le choix de menu "Fichier..Quitter" : - la fonction WDTouche renverra "*M*".
- la fonction WDChaîne renverra les lettres d'appel dans l'ordre de sélection des menus. Dans notre exemple, WDChaîne renvoie "FQ".
Mettre fin à l'application Pour terminer l'utilisation de l'interface externe, il suffit de saisir les lignes de code suivantes :
// Terminer... WinDev.WDTermine();
|
|
|
|