Besoin d’aide RxMui

15 sujets de 1 à 15 (sur un total de 81)

  • sinisrus

      #9304

      Salut j’ai commencé a apprendre RxMui mais pas facile car la doc est en anglais ce que je cherche c’est comment faire passé des variables d’une fonction à l’autre?

      merci d’avance

      Admin

      bigdan

        #142883

        Cf les variables globales en ARexx et PROCEDURE EXPOSE

        sinisrus

          #142884

          okay je regarde ça merci :-)


          Bon je vien de fzire plusieurs test mais je ne capte pas trop en faite :

          /* test */

          toto= »tony »

          say toto /* ça c’est ok */

          bob: procedure expose global. /* ça je capte pas! */

          say ‘affiche’ toto

          return


          C’est bon je pense avoir compris j’ai tester l’exemple dans l’arexx pour les nul :-)

          Modération de BatteMan : Pensez à éditer votre dernier post afin d’éviter de faire plusieurs posts d’affilés. MERCI.

          Admin

          bigdan

            #142885

            Tu n’appelle pas ta procédure bob : un petit call bob() bien placé par exemple peut aider !

            /* test */

            toto= »tony »

            say toto /* ça c’est ok */

            call bob()

            call bob()

            exit

            bob: procedure expose toto

            toto = toto || « et alice »

            say toto

            return

            Tous les scripts Arexx ou presque utilisent des procédures ! Une fois que tu auras pigé la portée des variables locales et globale, ce sera plus facile d’adapter des scripts RxMUI.

            bigdan

            qui n’a plus que de maigres connaissances en ARexx

            sinisrus

              #142886

              merci bigdan = je comprend le principe de variable globales et locales car j’ai fait un peu de php et je fais dans mon taff de l’action script pour des site en flash

              Par contre tous seul dans mon coin je galère vraiment trop pour apprendre RxMUI j’ai pas envie de laisser tombe mais j’aurai besoin d’aide pour apprendre plus vite.

              Yomgui

                #142887

                c’est quand même vraiement pas beau le Arexx…

                Sergio

                  #142888

                  Tu fais ton appli en python/pyMUI et tu utilises le module python qui fait de l’Arrex si tu en as besoin pour communiquer avec un autre prog. Hopla, parti le vilain Arexx! 8-)

                  sinisrus

                    #142889

                    c’est pas arexx qui me pose problème mais rxmui

                    je suis sous os4 et pymui c’est morphos a moins que…?!

                    Yomgui

                      #142890

                      ils ont aussi python sous Aos4, par contre pas pymui…

                      je sais pas d’ailleurs si ils ont prévu un truc du genre….

                      mais reste que Arexx = pas beau de toute façon :-D

                      Sergio

                        #142891

                        OS4… ah ben alors tu te crées un script Arexx qui charge rxMUI et interprète les commandes qu’il reçoit et depuis python tu lui envoies des commandes en Arexx…et hopla, tu codes en python c’est joli tout plein… ah oui, mais c’est MUI qui te pose problème… bon, je sors alors!

                        sinisrus

                          #142892

                          Salut,

                          toujours en apprentissage rxmui

                          Je commence à comprendre mais ya encore un du taff! :-/

                          Voila mon problème j’esseye d’afficher une liste issu d’un fichier externe dans mon programme avec la class listview

                          pour le moment j’arrive à faire ouvrir une fenetre shell et avoir ma liste dedans :-(

                          voici un lien vers mon fichier :

                          http://amitheme.amiga-ng.org/Amiga/test.lha

                          merci d’avance pour l’aide

                          ps: je cherche toujours de la doc française, vieux magazine ou autre…

                          Polymere

                            #142893

                            Salut,

                            Le consept de rxmui est asser obscure au départ.

                            Je te conseil d’éviter de mélanger la création dynamique et par variable, cela rend la structure illisible.

                            /***********************************************************************/

                            createApp: procedure

                            app.Title="AttachedListExample"

                            app.Version="$VER: AttachedListExample 1.0 (8.7.2001)"

                            app.Copyright="©2001 by Alfonso Ranieri"

                            app.Author="Alfonso Ranieri"

                            app.Description="AttachedList Example"

                            app.Base="ALIST"

                            app.SubWindow="mwin"

                            mwin.Title="AttachedList Example"

                            mwin.ID="MWIN"

                            mwin.Contents="mgroup"

                            /*call child("mgroup","graces","group") Par defaut, un group est vertical */

                            /*De plus tu mélange la création par variable et dynamique */

                            mgroup.0="graces" /* mgroup (qui est vertical) contient l'objet graces */

                            graces.class="group" /* graces est une classe group */

                            graces.0="races" /* graces contient l'objet races */

                            races.class="NListview" /* races est une classe NListView */

                            races.list="list" /* un listview contient un objet liste, ici "list" */

                            list.Format="BAR,BAR,BAR,BAR,BAR,BAR,BAR,BAR" /* attributs de la liste ici le Format */

                            list.Title="Act|Nom du bouton|Effacer le fichier|Chemin|Commande|Option|Entrée|Sortie"

                            mgroup.1="gactions" /* le 2eme objet de mgroup est gactions */

                            gactions.class="group" /* gactions est une classe group */

                            gactions.horiz=1

                            /* défini l'attribut Horiz à Vrai alias True alias 1 (Faux alias False = 0) */

                            gactions.0=button("AddAction","Ajouter") /* ajouté un objet bouton appelé

                            AddAction avec le texte "Ajouter" dedans */

                            gactions.1=HSpace(0)

                            /* ajout d'un espace pour te montrer que là cela peut être utile */

                            gactions.2=button("DelAction","Supprimer")

                            /* call DataLoad() oulala il faudrai déjà terminer ta gui avant d'essayer de l'utiliser,

                            "graces.3=HSpace(0)" manquait graces.2 donc n'est jamais trouvé... Il faut tjs

                            commencer par 0 et incrémenter */

                            /* création de l'application, qui crée la fenetre mwin etc... */

                            if NewObj("application","app")~=0 then exit

                            /* notification pour pouvoir quitter en cliquant l'icône de fermeture */

                            call Notify("mwin","closerequest",1,"app","returnid","quit")

                            call DataLoad() /* ton application existe, là tu peux remplir ta liste */

                            /* Pour utiliser l'application, c'est mieux d'ouvrir la fenetre */

                            call set("mwin","open",1)

                            return

                            /*********************************************************************/

                            DataLoad: procedure

                            /* ben alors on teste pas son ouverture de ficher ? :D

                            ce n'est pas parce que le fichier "existe" que tu pourra l'ouvrir

                            si quelqu'un d'autre l'utilise */

                            IF OPEN(maBase,"fichier.data", READ) THEN DO

                            DO WHILE ~EOF(maBase)

                            comligne = READLN(maBase);

                            call DoMethod('races',"Insert",comligne,"Bottom")

                            /* appel la méthode "Insert" pour la liste "races" avec les données du fichier

                            à la fin de la liste */

                            END

                            CALL CLOSE(maBase)

                            END

                            ELSE DO

                            SAY "Impossible d'ouvir la base de donnée!"

                            END

                            RETURN

                            Voilà le morceau de code corrigé et commenté.

                            A+

                            sinisrus

                              #142894

                              Super merci polymere ces trop genial !!! :-)

                              par contre quand tu dit que je mélange la création par variable et dynamique tu peu m’en dire plus car je ne vois pas du tous ou tu voi ça?!

                              Polymere

                                #142895

                                Ici:

                                mwin.Contents="mgroup" /* mode variable */

                                call child("mgroup","graces","group") /* mode dynamique */

                                graces.0=HSpace(0) /* mode variable */

                                Cela rend la « lisibilité » de l’arborescence difficile (du moins pour moi).

                                Il faut aussi utiliser l’identation (tabulation) pour décaler chaque création de groupe pour éviter de se planter.

                                EDIT 19h30: En fait c’est un peu plus compliqué car en fait tu as fait cela avec ces 3 lignes ci-dessus:

                                mwin.Contents="mgroup" /* mode variable */

                                mgroup.0="graces"

                                graces.class="group"

                                graces.0=HSpace(0) /* mode variable */

                                Sachant que « mgroup » est déjà un groupe vertical, tu imbrique deux groupes pour rien. Comme par défaut, les groupes n’ont pas de bordure (frame), ils sont invisible.

                                Dans le code, il y a 3 groupes imbriqué: « mgroup », « graces » et « races ».

                                D’ailleurs quand tu vois qu’un groupe n’a qu’un seule membre

                                ex: graces.0= »races » , il n’y a pas de « graces.1 » donc le groupe « graces » est inutile.

                                Maintenant cela peut avoir un intéret pour mettre ce qu’on appel un titre de bordure (frame title).

                                modifie en ajoutant ceci et tu verra:

                                graces.class="group" /* graces est une classe group */

                                graces.frame='group' /* ajoute une bordure de "groupe" */

                                graces.frametitle="Liste des races" /* ajoute un titre à la bordure */

                                graces.0="races" /* graces contient l'objet races */

                                Ensuite, décale les deux lignes du milieu dans « races. » et enlève le « g » du début. Tu aura toujours la même bordure autour de ta liste.

                                Il est conseillé de travailler sur papier avant de créer une gui MUI.

                                Essaye de dessiner une fenetre avec les différents éléments en pensant tjs qu’il sont soit dans des groupes verticaux soir dans des groupes horizontaux et qu’ils peuvent s’empiler.

                                Dans l’éxemple que j’ai retravaillé:

                                +-mwin-fenetre


                                +

                                | .-mgroup-group-vertical-(invisible)


                                . |

                                | ! +-(0)-races-nlistview-(invisible)


                                + ! |

                                | ! | .-list-listview


                                . | ! |

                                | ! | ! Titre #! | ! |

                                | ! | ! 1|test:|0|Bouton 1|Fichier 1|Opt|In| #! | ! |

                                | ! | ! #! | ! |

                                | ! | ! #! | ! |

                                | ! | ! #! | ! |

                                | ! | ! #! | ! |

                                | ! | ! #! | ! |

                                | ! | ! î! | ! |

                                | ! | ! v! | ! |

                                | ! | '


                                ' | ! |

                                | ! +


                                + ! |

                                | ! +-(1)-gaction-group-horiz-(invisible)


                                + ! |

                                | ! | .-(0)-AddAction-. +(1)-hspace. .-(2)-DelAction-. | ! |

                                | ! | ! Ajouter ! | | ! Supprimer ! | ! |

                                | ! | '


                                ' +


                                + '


                                ' | ! |

                                | ! +


                                + ! |

                                | '


                                ' |

                                +


                                +

                                Donc il faut dessiner les éléments en suivant un aspect homogène.

                                Ensuite tu entoure chaque groupe d’objets suivant leur disposition pour connaitre ton « empilement ».

                                Voilà :)

                                A+

                                /me qui a passé plus de temps a faire le ascii art qu’à le dissiner/photographier et à le poster ici…

                                Polymere

                                  #142896

                                  A propos, je n’ai rien inventé:

                                  sur ce liens, tu as la liste des classes:

                                  http://alfie.altervista.org/rxmui/rxmuidoc/classes.html

                                  « races » est un NListVew qui est un enfant de « group ».

                                  Donc tous les attributs de « group » peuvent être appliqué à « races ».

                                  Autre éxemple, un « bouton » MUI est une zone de texte avec une « bordure » bouton, un « fond » bouton etc…

                                  la ligne:

                                  button("AddAction","Ajouter")

                                  peut être écrite:

                                  gactions.0="AddAction"

                                  AddAction.class="text" /* affiche du texte */

                                  AddAction.Contents="Ajouter" /* ce qu'on affiche */

                                  AddAction.Preparse=ParseText("%c") /* texte centré */

                                  AddAction.Frame='Button' /* bordure */

                                  AddAction.Background='ButtonBack' /* fond */

                                  AddAction.Font='Button' /* fonte */

                                  AddAction.InputMode='RelVerify' /* Reagit quand on clic dessus */

                                  Et après on me demande pourquoi j’adore mui… :)

                                  A+

                                15 sujets de 1 à 15 (sur un total de 81)

                                • Vous devez être connecté pour répondre à ce sujet.

                                Forums AmigaOS, MorphOS et AROS Développement Besoin d’aide RxMui

                                Amiga Impact