Arexx et sélection d’icones
12 sujets de 16 à 27 (sur un total de 27)
- 1
- 2
-
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é
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
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’
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)
Sur Amiga Manuals, ils viennent de scanner The ARexx Cookbook – Merrill Callaway.
Ca pourra peut-être t’aider?
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
Je ne sais pas si tu étais arrivé à la récupérer?
Filename: Arexx Cookbook.7z
Size: 32.53 MB
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