Invité Invité
| Sujet: WinMessage Jeu 24 Nov 2011 - 18:38 | |
| WinMessage Messages Windows Ce que code est en fait extrait du pack SST se trouvant sur le site Le CBNA. La fonction de la DLL montrée est de pouvoir afficher une îcone avec des commandes dans la barre de notification, mais je ne vais pas en parler; je m'interesse à une fonction contenu dans SST.dll: afficher des boites de dialogue Windows. Il vrai qu'il existe une extension pour les version de Game Maker superieur ou egale à 7 appelé GM Dialog, mais utiliser la bibliothèque SST offre l'avantage d'être en français, plus fiable (Certaines fonctions de GM Dialog provoquent des plantage (enfin, peut-être pas pour vous)) et est plus simple (Vous n'utiliserez qu'une seule fonction !). Téléchargement de la DLL: ici (de Brandon Rohrer)Voila le seul script que vous allez utiliser: WinMessage(str,caption,bouton,icon)- Spoiler:
- Code:
-
/* WinMessage(str,caption,bouton,icon) arg0: str arg1: caption arg2: bouton arg3: icone */
/* Les boutons OK OKCANCEL ABORTRETRYIGNORE YESNOCANCEL YESNO RETRYCANCEL CANCELRETRYCONTINUE */
/* Les îcones NONE ERROR QUESTION EXCLAMATION INFORMATION BLANK */
/* La fonction retourne: OK=1 CANCEL=2 ABORT=3 RETRY=4 IGNORE=5 YES=6 NO=7 CONTINUE=8 */
//declaration des variables var MessageBox,dll,bouton,icon,val;
//EMPLACEMENT DE LA DLL //A MODIFIER SI SST.DLL N'EST PAS DANS LE REPERTOIRE DU JEU dll=working_directory+"\SST.dll";
//Initialisation des variables MessageBox = external_define(dll,"SST_MessageBox",dll_cdecl,ty_real,3,ty_string,ty_string,ty_real);
//definition bouton switch (argument2) { case "OK": bouton=0; break; case "OKCANCEL": bouton=1; break; case "ABORTRETRYIGNORE": bouton=2; break; case "YESNOCANCEL": bouton=3; break; case "YESNO": bouton=4; break; case "RETRYCANCEL": bouton=5; break; case "CANCELRETRYCONTINUE": bouton=6; break; default: bouton=0; break; }
//definition icône switch (argument3) { case "NONE": icon=0; break; case "ERROR": icon=16; break; case "QUESTION": icon=32; break; case "EXCLAMATION": icon=48; break; case "INFORMATION": icon=64; break; case "BLANK": icon=128; break; default: icon=0; break; }
//execution du script val =execute_string("external_call("+string(MessageBox)+",argument0,argument1,"+string(bouton)+"|"+string(icon)+");");
//synchronisation des valeurs switch (val) { case 10: val=4; break; case 11: val=8; break; }
//resultat return val;
Voici l'exemple d'une boite de dialogue: WinMessage(str,caption,bouton,icon)Il y a quatre arguments à la fonction WinMessage:
- str: C'est le texte qui sera affiché dans la boite de dialogue.
- caption: C'est le nom de la boite de dialogue (dans l'exemple ci-dessus, il s'agit de "Erreur").
- bouton: Ici vous réglez les boutons qui s'affiche sur votre message (dans l'exemple ci-dessus, il s'agit des boutons Abandonner, Recommencer et Ignorer).
Si-dessous, vous trouverez les valeurs que vous pouvez utilisez pour choisir les boutons qui s'affiches. Ces valeurs doivent-être entre guillemets.
- "OK": Un bouton OK uniquement.
- "OKCANCEL": Un bouton OK et un bouton annuler.
- "ABORTRETRYIGNORE": Un bouton Abandonner, Recommencer et Ignorer (comme dans l'exemple si-dessus).
- "YESNOCANCEL": Une bouton Oui, Non et Annuler.
- "YESNO": Un bouton Oui et Non.
- "RETRYCANCEL": Un bouton Recommencer et un bouton Annuler.
- "CANCELRETRYCONTINUE": Un bouton Annuler, Recommencer et Continuer.
icon: Ici vous réglez l'icone qui s'affiche sur votre message (dans l'exemple, un panneau de danger). Si dessous, vous trouverez les valeur que vous pouvez utiliser pour choisir votre icone. Ces valeurs doivent-être mis entre guillemets. "ERROR": Une croix rouge, utile pour les messages d'erreur. "QUESTION": Un point d'interrogation, utile si un utilisateur doit faire un choix (Voulez-vous sauvegarder ? par exemple). "EXCLAMATION": Affiche un panneau de danger, pertinent pour un message d'avertissement (comme dans l'exemple si-dessus). "INFORMATION": Affiche un I, intéressant pour les messages d'information (Opération réussite ! par exemple). "NONE": Aucune îcone, juste du texte. "BLANK": Même chose que "NONE", sauf que le texte n'est pas totalement aligné à gauche (comme s'il y avait une îcone invisible). Valeur retournée:Cette fonction renvoie une valeur en fonction du bouton que vous avez cliqué. La fontion retourne le réel:
- si vous avez cliquez sur OK.
- si vous avez cliquez sur ANNULER.
- si vous avez cliquez sur ABANDONNER.
- si vous avez cliquez sur RECOMMENCER.
- si vous avez cliquez sur IGNORER.
- si vous avez cliquez sur OUI.
- si vous avez cliquez sur NON.
- si vous avez cliquez sur CONTINUER.
SST.dll doit se trouver dans le répertoire du jeu, si cette dll est placée ailleur, veuillez modifier la ligne: - Code:
-
dll=working_directory+"\SST.dll"; Et affecter l'emplacement de la bibliothèque à la variable dllVoilà, je vous est présenté la fonction WinMessage, pour exemple, je vous donne la fonction qui a permis d'afficher la boite de dialogue de l'exemple si-dessus: - Code:
-
WinMessage("Une erreur est survenue","Erreur","ABORTRETRYIGNORE","EXCLAMATION"); (pas d'initialisation de dll nécessaire).
Dernière édition par NVR le Ven 25 Nov 2011 - 17:00, édité 1 fois |
|
Mobi Utilisateur confirmé: Rang ****
Messages : 1256 Localisation : Dijon
| Sujet: Re: WinMessage Ven 25 Nov 2011 - 15:27 | |
| Vraiment utile et efficace. Merci de faire partager |
|
SPLN Utilisateur confirmé: Rang ***
Messages : 588 Localisation : Sur son ordinateur *vous vois* arrêtez de me regarder comme ça Projet Actuel : En quête de projet(s)!
Mes projets:
SP Lecteur Multimedia (Stand by)
S-Portable Graphics (demo1.8 is out! demo2.0 is planned)
SSB RPG (Stand by)
| Sujet: Re: WinMessage Sam 26 Nov 2011 - 12:23 | |
| J'étais déjà au courant mais c'est bien de le rappeler car cette DLL, je l'utilise et elle est génial même si des fois il y a un "Error define an external function" qui fait qu'elle ne s'intègre pas mais je pense que ça vient du bug GM7+ avec les DLLs. En revanche j'attends avec impatience une mise à jour permettant des interactions avec Win7, ça serait le top . |
|