[Astuce] Problème lors du retour dans un add-in
Posté le 02/05/2012 20:44
Je met ici mon post qui vient du topic
PRGM2 v1.5
"En réponse à la question posée:
Ne0tux a écrit :
Pour l'instant, la solution que j'ai trouvée est de sortir de PRGM2, de lancer n'importe quel add-in ou fonction native de la calto, de revenir su PRGM2 et là, les fonctions sont revenues. Mais c'est quand même long, d'autant plus que PRGM2 est tout en bas de la liste, et que les touches de raccourci sont déjà toutes prises...
J'ai enfin trouvé pourquoi cela arrivait:
imaginons un programme simple:
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
Bdisp_AllClr_DDVRAM();
fonctionBidon();
[red]while(1){
GetKey(&key);
} [/red]
return 1;
}
Arrivé à la fin de la fonction fonctionBidon(), le programme va entrer dans la boucle en rouge. Une pression sur la touche MENU va nous envoyer sur le menu, vu que GetKey() a cette propriété.
Ensuite, nous savons qu'un programme ne s’arrête pas totalement tant qu'un autre n'a pas été lancé => en revenant sur l'add-in, on est toujours dans cette boucle infinie !
Du coup, j'ai trouvé (sans le faire exprès) une alternative:
int AddIn_main(int isAppli, unsigned short OptionNum)
{
unsigned int key;
Bdisp_AllClr_DDVRAM();
while(1)
{
fonctionBidon();
GetKey(&key); [green]// utilisation du GetKey pour revenir au menu[/green]
}
return 1;
}
Ainsi, quoi qu'il arrive, si nous revenons sur l'add-in sans en avoir lancé un, la boucle fait que nous reprenons les fonctions comme si on lançai l'add-in pour la première fois.
En espérant que ces explications vous soient utiles
Citer : Posté le 02/05/2012 21:06 | #
Ça n'a aucun rapport avec PRGM2, et le fonctionnement de GetKey est décrit dans la doc. Ça n'a rien d'un scoop.
Citer : Posté le 02/05/2012 22:20 | #
je sais très bien que ça n'a rien à voir avec PRGM2...
C'est juste que je pensait utile de mettre à la disposition de tous une remarque que certains n'avaient pas remarqué...
Citer : Posté le 03/05/2012 21:11 | #
C'est pour ça que je n'utilise pas la fonction getKey() pour faire sortir. Cf souris et starwars, pas un seul bug de ce genre !
Citer : Posté le 03/05/2012 21:58 | #
Un de nous deux a mal compris.
Je t'explique mon point de vue, tu me dira si c'est à ça que tu pensais
Dans star wars (c'est le seul que j'ai sur ma calto) à la fin d'une partie, tu demande si tu veut rejouer ou non. Si tu quittes, tu ne peut plus revenir directement sur le jeu, sans lancer une autre appli avant.
C'est ce que permet d'éviter ma boucle
Tu es toujours dans le programme quoi qu'il arrive
Citer : Posté le 04/05/2012 18:57 | #
Ta boucle effectue un reboot quand on lance une autre application.
Et puis quad on quitte un jeu c'est qu'on veut le quitter, pas y rejouer direct
Citer : Posté le 04/05/2012 19:13 | #
pas forcement... Il m'arrive de quitter un jeu car un prof arrive derrière moi, et je n'ai pas forcement envie de relancer...
Mais ce doit être une question d'habitudes.
Pour le reboot, je ne vois pas en quoi ça en fait un...
Citer : Posté le 05/05/2012 10:11 | #
Le mieux en cours c'est les progs où tu peux mettre en pause et éteindre comme Run ou Orton
Citer : Posté le 05/05/2012 10:58 | #
c'est ce que je compte faire