realbasic-nug.fr
[Top] [All Lists]

Re: tri de lisbox

To: REALbasic NUG French <realbasic-nug dot fr at lists dot realsoftware dot com>
Subject: Re: tri de lisbox
From: Robin de Kat <sxenvironnement at mac dot com>
Date: Tue, 8 Apr 2008 00:26:44 +0200
Delivered-to: listarchive at realsoftware dot com
Delivered-to: realbasic-nug dot fr at lists dot realsoftware dot com
References: <B7567AA2-AF69-4859-9F93-0940C6CDA04E at mac dot com> <BAF1269D-E4BA-4DC4-BCAC-1BFEF663A500 at mac dot com> <716945E1-4019-47C0-9F38-A3AC4FE87235 at mac dot com> <BC5E83EF-98E7-4211-96D0-D0E33619BEA6 at mac dot com> <23DDEE1C-BC91-4164-A647-C4DFF9FB1078 at mac dot com> <2A3EC382-E600-47E7-8882-FA817AC0F74E at mac dot com> <2B4C2A85-0F8B-430F-890E-9D2B7C37FFE8 at mac dot com> <9CE39876-7215-4EEF-ABD7-B4E4D624737D at mac dot com> <44B1ECC3-E809-4AEF-A6A1-007AC2A61C38 at mac dot com>

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.

<Prev in Thread] Current Thread [Next in Thread>