Arexx et sélection d’icones

12 sujets de 16 à 27 (sur un total de 27)

  • 1
  • 2
  • Scriptjester

      #136300

      En fait pour l’argument WINDOW.ICONS.SELECTED la commande GETATTR a également besoin de l’argument NAME qui désigne le tiroir correspondant (c’est pas écrit en très gros dans la doc) :

      /* exemple pour le workbench (root)

      */

      address WORKBENCH

      GETATTR WINDOW.ICONS.SELECTED NAME root STEM Iconselected

      DO i = 0 to iconselected.count-1

      SAY iconselected.i.NAME

      end

      On peut remplacer root par n’importe quel tiroir que l’on voudrait tester, par exemple chez-moi « Workbench_4.1:s/Arexx », etc.

      Par contre j’ai essayé de faire un script avec une variable qui reprendrait successivement tous les tiroirs ouverts (pour mettre comme argument après le NAME dans GETATTR) : ça aurait permis d’avoir la totalité des icônes sélectionnés et le chemin en plus (cf. le script sur OS4Depot précédemment cité). Mais je n’ai pas réussi à le faire fonctionner : peut-être que GETATTR ne permet pas une variable comme argument après NAME ?

      Si tu y arrives, tu nous mettras l’exemple.

      PS :

      – c’est sur OS4, je ne suis pas certain qu’en-dessous ça fonctionne

      – le NAME dans la ligne SAY n’a rien avoir avec le NAME de GETATTR, c’est pour donner le nom de l’icône sélectionné identifié

      sinisrus

        #136301

        okay merci Scriptjester tu m’apporte un grand soutien en tout cas merci. De mon coté je test sous uae os3.9 (au taff pendant la pause de 12h) car j’ai pas trop le temps de bossé sur amigaOS4 (chez moi) sinon ton script pour les dossier fonctionne très bien sous 3.9

        sinisrus

          #136302

          Scriptjester = je vien de faire un test de ton script ça ne marche pas :-(

          sinisrus

            #136303

            Peut être une piste à suivre la dedans :

            ADDRESS workbench

            OPTIONS RESULTS

            GETATTR WINDOWS STEM WINDOW

            GETATTR windows STEM window.active

            IF window.active =  » THEN EXIT

            var DEBUG = 1

            var num_selected = 0

            var name_selected =  »;

            var selected;

            var selectedfiles = « apap »;

            var dir_divider = « / »;

            GETATTR OBJECT WINDOW.ICONS.SELECTED.COUNT NAME ‘ »‘||window.active||' »‘ VAR num_selected

            IF num_selected = 0 THEN EXIT

            IF DEBUG=1 THEN ADDRESS COMMAND ‘echo « ..Active window: ‘||window.active||’ ‘||RIGHT(window.active, 1)|| ‘ » >> ram:copyfiles_debug’

            IF RIGHT(window.active, 1) = ‘:’ THEN

            dir_divider = «  »

            ELSE

            dir_divider = « / »

            /** Create the command to « send » to Paste.rexx.

            Starts with magic word « COPYFILES, and then

            the directory we’re copying from. */

            selectedfiles = « COPYFILES,' »||window.active|| »‘, »

            IF DEBUG=1 THEN ADDRESS COMMAND ‘echo START ‘||selectedfiles||’ >> ram:test’

            /** Go through each selected icon. */

            do i = 0 to num_selected-1

            GETATTR OBJECT WINDOW.ICONS.SELECTED.i NAME ‘ »‘||window.active||' »‘ STEM selected

            IF EXISTS( »window.active »dir_divider »selected.name ») = 1 THEN

            selectedfiles = selectedfiles' »‘window.active »dir_divider »selected.name' » ‘

            IF EXISTS( »window.active »dir_divider »selected.name’.info’) = 1 THEN

            selectedfiles = selectedfiles' »‘window.active »dir_divider »selected.name’.info » ‘

            IF DEBUG=1 THEN ADDRESS COMMAND ‘echo MIDDLE ‘||selectedfiles||’ >> ram:test’

            END

            /** Set clip that Paste.rexx reads from */

            SETCLIP(« COPYFILES », selectedfiles)

            IF DEBUG=1 THEN ADDRESS COMMAND ‘echo HIT ‘||selectedfiles||’ >> ram:test’

            Scriptjester

              #136304

              Chez moi, ça marche : bien sûr uniquement pour la fenêtre racine du workbench dans mon script (c’est-à-dire la fenêtre contant les disks et quelques raccourcis at autres appicons), sinon il faut mettre le tiroir à « scanner » comme argument après NAME dans GETATTR.

              Mais voilà ma solution complète, répondant normalement à ta demande initiale, qui « scanne » tous les tiroirs ouverts et qui sauve en fichier :

              – le nom des tiroirs contenant des icônes sélectionnées

              – suivi du nombre d’icônes sélectionnées correspondant pour le tiroir concerné

              – suivi des noms des icônes sélectionnées

              (et qui fonctionne ! Je viens de le vérifier…)

              /*

              Save drawer path then number and names of selected icons for all open drawers with selected icons

              */

              address WORKBENCH

              GETATTR WINDOWS STEM window

              CALL OPEN out, »s:AllSelectedIcons.txt »,write

              DO i = 0 to window.COUNT-1

              DrawerToCheck = ‘ »‘||window.i||' »‘

              GETATTR WINDOW.ICONS.SELECTED NAME DrawerToCheck STEM SelectedIcons

              IF SelectedIcons.COUNT>0 THEN

              DO

              CALL WRITELN OUT,DrawerToCheck

              CALL WRITELN OUT,SelectedIcons.COUNT

              DO j = 0 to SelectedIcons.COUNT-1

              CALL WRITELN OUT,' »‘SelectedIcons.j.NAME' »‘

              END

              END

              END

              CALL CLOSE out

              EXIT

              (le forum ne respecte pas les tabulations qui améliorent la présentation, désolé : je t’envoie le fichier à l’adresse indiquée dans ton profil)

              sinisrus

                #136305

                merci Scriptjester du coup tu ma mâché le taff :-) mais bon j’ai encore plein de truc à chercher pour avancé dans ce petit projet qui me semble très utile pour amiga

                Tarzin

                  #136306

                  Sur Amiga Manuals, ils viennent de scanner The ARexx Cookbook – Merrill Callaway.

                  Ca pourra peut-être t’aider?

                  sinisrus

                    #136307

                    merci je connaissais pas ce site :-)

                    Tarzin

                      #136308

                      C’est une mine d’or!

                      Il y a un travaille de fou pour arriver à ce résultat

                      sinisrus

                        #136309

                        Oula c’est dur quand même l’arexx je ne trouve pas comment faire pour mettre dans une variable un chemin renvoyé par la commande cd :

                        ADDRESS command ‘cd’

                        Sinon je cherche une doc french de rxmui ça existe?

                        ou sinon toute doc ou excmple en rexx pour mon aprentissage sera la bienvenue merki d’avance

                        Tarzin

                          #136310

                          Je ne sais pas si tu étais arrivé à la récupérer?

                          Filename: Arexx Cookbook.7z

                          Size: 32.53 MB

                          Arexx Cookbook

                          sinisrus

                            #136311

                            a non j’avais pas vu celui la merci beaucoup :-)

                          12 sujets de 16 à 27 (sur un total de 27)

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

                          Forums AmigaOS, MorphOS et AROS Développement Arexx et sélection d’icones

                          Amiga Impact