Le 7 avr. 08 à 22:24, Arnaud Nicolet a écrit :
Le 7 avr. 08 à 16:26 (soir), Robin de Kat a écrit:
Par contre, quand j'essaie de m'en servir dans un "drop", les
éléments "dropés" sont triés entre eux et mis en début de liste??
Comment faire pour que toute la liste soit triée?
Hmmm... À mon avis, c'est dû à l'ordre des événements (donc,
"events") qui ne sont pas exécutés comme on le pense.
Essayez donc de placer le code "sort" dans un "Timer". Mettez
simplement "Timer1.Mode=1" dans l'événement "DropObject" et ça
devrait marcher (mettez une période courte au "Timer", genre 1).
La doc n'est pas claire du tout (pour moi...). J'ai bien compris
le fonctionnement général mais quelle est la syntaxe?
J'ai essayé cela, sans succès (NilObject Exception):
//dans l'évènement DropObject
dim timer1 as timer
timer1.period=1
timer1.mode=1
Pardon, j'aurais dû être plus clair:
Il faudrait mettre le "Timer" sur la fenêtre (en tant que
contrôle, et non pas dynamiquement dans le code). Sinon, il est
difficile de placer du code dans son événement "Action".
Donc vous placez un timer sur la fenêtre, avec Period=1 (mode=0,
sans quoi il s'exécute dès le démarrage). Dans l'événement
"Action" de ce "Timer", vous placez "Listbox1.sort" et dans
l'événement "DropObject" de la liste, vous placez "Timer1.Mode=1".
Merci beaucoup, c'est beaucoup plus clair et j'ai enfin
parfaitement compris le fonctionnement d'un "Timer".
Cela dit, dans mon cas précis du Drag&Drop, cela ne change rien, le
résultat est identique, seuls les éléments "dropés" sont triés
C'est ma foi étrange. Je vais essayer de faire un test. D'ici là, je
me pose une question: n'y a-t-il pas un espace au début de ce que
vous placez dans la liste? (je ne pense pas, mais c'est un risque à
écarter)
Non, pas d'espace.
|