Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Sélection multiple par simple clic dans une liste image ?

2 réponses
Avatar
JC
Bonjour

Toujours dans mon optique de faire un outil "tr=E8s simple" pour
personnes =E2g=E9es, je voudrais que les utilisateurs puissent
s=E9lectionner plusieurs photos simplement en cliquant dessus dans une
liste image =E0 s=E9lection multiple. Or, faire un CTRL-clic est compliqu=
=E9
pour eux. Donc je voudrais qu'il se passe ceci :
- un clic sur une photo s=E9lectionne la photo (comme si on faisait un
CTRL-clic), donc 10 clics sur des photos diff=E9rentes donneront une
s=E9lection de ces 10 photos,
- un clic sur une photo d=E9j=E0 s=E9lectionn=E9e retire la photo des
s=E9lections d=E9j=E0 faites.

J'ai essay=E9 tout un tas de choses (avec ListeSelectPlus, avec des
tableaux interm=E9diaires, apr=E8s du comportement avant et apr=E8s la
s=E9lection,...), mais je n'y arrive toujours pas.

Est-ce que quelqu'un a une solution ?

Merci par avance
JC

2 réponses

Avatar
JC
pour faire suite à ma question, voici deux infos :
- mes premiers tests étaient "presque" bons, mais comme j'utilisais
une liste image fichier (accès direct), ça ne marchait pas vraiment.
Avec une liste image "fichier chargé en mémoire", ça marche déjà un
peu mieux. Pourquoi ???
- voici le code qui se rapproche de ce que je veux faire. Je précise
que monTableau est global à la fenêtre. Il doit y avoir plus simple,
non ?

elt est un entier
maPosition est un entier
maSélection est un entier

// je mémorise la dernière image sélectionnée
maSélection=ListeSelect(MoiMême)
// je cherche dans le tableau si je l'ai déjà sélectionnée auparava nt
maPosition = TableauCherche(MonTableau,tcLinéaire,maSélection)
SI maPosition>=0 ALORS
// si oui, alors je la retire du tableau
TableauSupprime(MonTableau,maPosition)
SINON
// sinon je la rajoute aux sélections déjà faites
TableauAjoute(MonTableau,maSélection)
FIN

// je désélectionne toute la liste image
ListeSelectMoins(MoiMême)

// je sélectionne tous les éléments présents dans le tableau
POUR TOUT ELEMENT elt DE MonTableau
ListeSelectPlus(MoiMême,elt)
FIN

JC
Avatar
JeAn-PhI
JC avait soumis l'idée :
pour faire suite à ma question, voici deux infos :
- mes premiers tests étaient "presque" bons, mais comme j'utilisais
une liste image fichier (accès direct), ça ne marchait pas vraiment.
Avec une liste image "fichier chargé en mémoire", ça marche déjà un
peu mieux. Pourquoi ???
- voici le code qui se rapproche de ce que je veux faire. Je précise
que monTableau est global à la fenêtre. Il doit y avoir plus simple,
non ?

elt est un entier
maPosition est un entier
maSélection est un entier

// je mémorise la dernière image sélectionnée
maSélection=ListeSelect(MoiMême)
// je cherche dans le tableau si je l'ai déjà sélectionnée auparavant
maPosition = TableauCherche(MonTableau,tcLinéaire,maSélection)
SI maPosition>=0 ALORS
// si oui, alors je la retire du tableau
TableauSupprime(MonTableau,maPosition)
SINON
// sinon je la rajoute aux sélections déjà faites
TableauAjoute(MonTableau,maSélection)
FIN

// je désélectionne toute la liste image
ListeSelectMoins(MoiMême)

// je sélectionne tous les éléments présents dans le tableau
POUR TOUT ELEMENT elt DE MonTableau
ListeSelectPlus(MoiMême,elt)
FIN

JC



une liste fichier est rafraichi avec le fichier donc les sélections ne
restent pas il faut donc utiliser un liste mémoire avec un tableau ou
un table en dehors de la fenêtre pour stocker les sélections rien de
bien compliqué

--
Cordialement JeAn-PhI