Appels de procédures (sous-programmes)

Requêtes de fonctionnalités dans un programme déja existant ou idée d'un nouveau programme.
Post Reply
Guy2g
Posts: 59
Joined: 27 Jun 2009, 13:16

Appels de procédures (sous-programmes)

Post by Guy2g »

Vouai ... le terme de procédure est un peu surfait :)
Cela s'apparente plus aux anciens "sous-programmes appelés pas "Gosub" et qui ressortaient par un "Return".
Mais comme l'appel de procédures n'existe pas dans la version 2.0.7.3 et qu'il peut-être particulièrement fastidieux de réécrire sans cesses les mêmes séquences répétitives, voici un exemple de (pseudo) appel de procédure.

Le but est de montrer qu'on peut facilement appeler une même "procédure" à partir de différents endroits d'un programme ; il suffit pour cela de "transmettre" des paramètres (objet du traitement, adresse de retour) en les mémorisant dans des variables pré-définies avant le branchement sur la procédure.

Voici un petit exemple :
** Script d'Actionaz exporté **
Script settings
Auteur du script : Guy2g
Programme : actionaz
Version du programme : 2.0.7.3
Version du script : 1.0.1.0
Système d'exploitation : windows
Résolution : 1024x768
Langue : fr
Nombre d'actions : 19
Intervalle : 0ms
Répéter : 1 fois

Actions

000->Boîte de dialogue : Afficher "A partir d'un programme principal, on va appeler des procédures", titre : "Appels de Procédures", type : Ok, icône : Information (Affiche un message, peut demander oui ou non.)
001->Variable : $Work (chaine) = "en retard " (Défini une variable, ajoute ou soustrait une valeur.)
002->Variable : $Return (chaine) = "0004" (Défini une variable, ajoute ou soustrait une valeur.)
003->Aller à : Aller à la ligne/au label PROC1 (Aller à une ligne/un label.)
004->Variable : $Work (chaine) = "pleurent" (Défini une variable, ajoute ou soustrait une valeur.)
005->Variable : $Return (chaine) = "0007" (Défini une variable, ajoute ou soustrait une valeur.)
006->Aller à : Aller à la ligne/au label PROC2 (Aller à une ligne/un label.)
007->Variable : $Work (chaine) = "arrivé" (Défini une variable, ajoute ou soustrait une valeur.)
008->Variable : $Return (chaine) = "0010" (Défini une variable, ajoute ou soustrait une valeur.)
009->Aller à : Aller à la ligne/au label PROC1 (Aller à une ligne/un label.)
010->Variable : $Work (chaine) = "chantent" (Défini une variable, ajoute ou soustrait une valeur.)
011->Variable : $Return (chaine) = "0013" (Défini une variable, ajoute ou soustrait une valeur.)
012->Aller à : Aller à la ligne/au label PROC2 (Aller à une ligne/un label.)
013->Boîte de dialogue : Afficher "Encore ?", titre : "That's All Folks !", type : Oui-Non, icône : Aucune, oui : aller à la ligne/au label 1, non : ne rien faire (Affiche un message, peut demander oui ou non.)
014->Stop : Stoppe l'exécution (Stoppe l'exécution du script.)
PROC1->Boîte de dialogue : Afficher "Le printemps est {$Work} ...", titre : "Procédure 1", type : Ok, icône : Aucune (Affiche un message, peut demander oui ou non.)
016->Aller à : Aller à la ligne/au label {$Return} (Aller à une ligne/un label.)
PROC2->Boîte de dialogue : Afficher "... les oiseaux {$Work} !", titre : "Procédure 2", type : Ok, icône : Aucune (Affiche un message, peut demander oui ou non.)
018->Aller à : Aller à la ligne/au label {$Return} (Aller à une ligne/un label.)
On n'est pas limité par le nombre de paramètres, puisque la routine utilise les variables d'origine. Il faut seulement faire attention à l'adresse de retour qu'on met dans la variable $Return !

En espérant que ça vous soit utile autant qu'à moi ! 8) :D
Rien ne sert de gémir, il faut réfléchir à point !
extasie
Posts: 37
Joined: 23 Jan 2009, 19:10

Re: Appels de procédures (sous-programmes)

Post by extasie »

C'est dommage je n'arrive pas à l'importer sur mon Actionaz, et comme ça, je n'arrive pas à voir de quoi tu veux parler.
Celui qui veut faire quelque chose trouve une solution, celui qui ne veut rien faire trouve une excuse.
User avatar
Jmgr
Admin
Posts: 1649
Joined: 07 Dec 2005, 15:45
Contact:

Re: Appels de procédures (sous-programmes)

Post by Jmgr »

Oui tu devrais poster le contenu du fichier .act entre deux balises code.
"My software never has bugs. It just develops random features."
Post Reply