PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Déplacement d'une ligne par drag and drop dans une même table
Déplacement d'une ligne par drag and drop dans une même table
Iniciado por galanadrien, 22,nov. 2018 12:05 - 1 respuesta
Publicado el 22,noviembre 2018 - 12:05
Bonjour à tous,

Je cherche à pouvoir agencer les lignes de ma table à l'aide du drag and drop.

J'ordonne ma table à l'aide de ce que j'appelle un numéroLigne, et j'aimerai que lorsque je déplace ma ligne avec le Drag and Drop, la ligne que je glisse se mette à jour avec un numéro supérieur (ou inférieur) au numéro de la ligne dans laquelle je l'ai drop.

Seulement je suis encore plutôt débutant et je ne sais vraiment pas me servir du drag and drop dans une même table, et je n'ai pas pu trouver d'exemple de cela..

Savez-vous si c'est possible, et auriez vous une idée de comment faire ?


Merci d'avance,

Adrien
Miembro registrado
81 mensajes
Publicado el 27,noviembre 2018 - 14:35
bonjour

deja il va te falloir recuperer les indices des deux elements : celui de depart, celui d'arrivée

dans les evenements de la table,
sur clic gauche (la selection de la ligne de depart) , recuperer l'indice de la ligne avec
nligdepart est un entier = tableinfoxy(matable,tinumligne,sourisposx(),sourisposy())

sur relachement du clic en glisse depose :, recuperer l'indice de la ligne avec
nligarrivee est un entier = tableinfoxy(matable,tinumligne,sourisposx(),sourisposy())


il faut maintenant insérer la ligne .
disons, apres celle sur laquelle on fait le relaché

tableinsere(matable,nligarrivee+1)

on y met maintenant les infos de la ligne de depart .attention du fait du l'insertion, faut savoir si la ligne de depart etait apres (dans ce cas elle a pris un rang de plus), ou avant.

si nligdepart > nligarrivee alors
nligdepart++
fin

matable[nligarrivee+1] = matable[nligdepart]


maintenant on supprime la ligne de depart

tablesupprime(matable,nligdepart)




//j'oubliais.

apres faut renumeroter tes lignes.

pour toute ligne i de matable
matable[i].col_numligne = i

fin



voilà en gros


à tester evidemment....
Mensaje modificado, 27,noviembre 2018 - 14:42