User Tag List

Results 1 to 3 of 3

Thread: Petit scarabé découvre les boucles

  1. #1
    floflo
    Guest

    Petit scarabé découvre les boucles

    Bonjour,

    Je souhaite codé dans une extension la possibilité de parcourrir une liste de données et d'en récupérer les valeurs.
    Je lance donc la boucle avec une action faisant appel à la fonction callRunTimeFunction(rdPtr, RFUNCTION_GENERATEEVENT, CND_ON_BOUCLE_LSTPACK, 0);

    La condition associé est définie comme condition événementielle.

    Ne sachant pas à quel momment MMF2 traite les actions associés à une condition, j'ai essayé une sorte d'appel récursif de la condition en ajoutant la fonction callRunTimeFunction(rdPtr, RFUNCTION_GENERATEEVENT, CND_ON_BOUCLE_LSTPACK, 0) dans sa fonction et à chaque exécution de la fonction de la condition, je renseigne un pointeur sur l'élément suivant de la liste de données.

    A côté, j'ai créé une fonction de récupération de données à partir du pointeur incrémenté dans la fonction de la condition.

    Mais en testant la boucle sur une liste de n données, je me suis aperçu que MMF2 traite d'abord n fois la fonction de condition,
    puis lance n fois les actions définies sur la condition.
    => je récupère n fois les infos de la dernière mise à jour du pointeur, c'est à dire les infos du dernier élément de la liste de données.

    Dans l'état actuel de mes connaissances, je m'y prends très mal pour gérer cette boucle. Si un maître de la boucle passe par ce topic, peut-il partager un peu de ses connaissances
    avec le pauvre petit scarabé.

    Faut-il considérer la condition de boucle comme un simple trigger permettant à MMF2 d'empiler les actions à réaliser et déporter le parcours des données dans la fonction de récupération de donnée ?

    Quel est l'effet du retour TRUE ou FALSE d'une fonction de condition sur le comportement de MMF2 ? Je me suis rendu compte qu'il suffit que la dernière condition renvoie false pour que les actions derières ne soient pas traitées.

    Merci (beaucoup) d'avance

  2. #2
    Clickteam Clickteam

    Join Date
    Jun 2006
    Location
    France
    Posts
    14,022
    Mentioned
    279 Post(s)
    Tagged
    3 Thread(s)

    Re: Petit scarabé découvre les boucles

    Si je ne m'abuse, la fonction GENERATEEVENT déclenche IMMEDIATEMENT tous les événements contenants la condition en question. C'est-à-dire MMF va évaluer la condition puis, si elle est vraie (et si les autres conditions éventuelles de l'événement sont vraies aussi) va appeler les actions de l'événement.

    Si dans ta condition tu fais un autre GENERATEEVENT de la même condition, alors MMF va immédiatement évaluer (encore) cette condition, donc il va rappeler la condition, AVANT de déclencher les actions. Si tu fais ça N fois, c'est normal qu'il évalue d'abord N fois les conditions, puis quand les appels à GENERATEEVENT se terminent il va dépiler les évenements un par un et appeler leurs actions, d'où l'appel des actions N fois.

  3. #3
    floflo
    Guest

    Re: Petit scarabé découvre les boucles

    Je comprends mieux comment ça fonctionne.
    Désormais, j'incrémente le pointeur de la liste de données et génère les événements d'appel de la condition, dans la fonction de lancement et ça fonction correctement.

    Merci Yves

Similar Threads

  1. se passer des boucles perfs ?
    By graboide in forum iOS Export Module Version 2.0
    Replies: 6
    Last Post: 9th November 2012, 01:10 AM
  2. comparer chaque objets sans boucles ni foreach
    By graboide in forum File Archive
    Replies: 3
    Last Post: 8th November 2012, 01:29 AM
  3. module IOS est les boucles rapide
    By graboide in forum iOS Export Module Version 2.0
    Replies: 13
    Last Post: 24th May 2012, 03:30 PM
  4. Boucles rapides
    By SGL in forum File Archive
    Replies: 13
    Last Post: 23rd April 2009, 08:48 PM
  5. petit jeu
    By Sylnade in forum File Archive
    Replies: 4
    Last Post: 1st May 2007, 06:32 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •