PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Défilement automatique d'un tableau
Défilement automatique d'un tableau
Iniciado por Jean-François P, 16,mar. 2020 13:49 - 8 respuestas
Miembro registrado
110 mensajes
Publicado el 16,marzo 2020 - 13:49
Bonjour,

Est il possible de faire défiler un tableau sans passer par la position de l'ascenseur?

J'ai créé un programme qui permet de voir le planning des techniciens sur un tv ainsi qu'une liste des tâches restants à faire.
Cette liste est plus grande que mon tableau.
Comme c'est afficher sur une tv je voudrais que la liste défile et remonte automatiquement à la fin.

Quelqu'un a une solution? je n'ai rien trouvé de probant, puisque je veux cacher mon ascensseur.

Merci pour votre aide.
Miembro registrado
110 mensajes
Publicado el 27,marzo 2020 - 09:00
Bonjour,

Personne n'a d'idées? :D
Miembro registrado
1.002 mensajes
Publicado el 27,marzo 2020 - 09:37
Bonjour,

Tu peux faire un tableselect() tous les x temps, et des que tu arrive en bas tu selectionne le premier element du tableau

Jordan
Miembro registrado
110 mensajes
Publicado el 27,marzo 2020 - 15:42
Merci Jordan de ta réponse

Mais c'est un solution que j'avais déjà essayé avec tableselectplus()

Mais c'est une solution de repli, le problème c'est que lorsque j'arrive à la première ligne non visible à l'initialisation du tableau
j'ai un changement de vue complète.
La première ligne non visible devient la première ligne visible.
On a pas l'effet défilement que je recherche.

Je voudrais un défilement comme le générique de star wars moi ^^

Tu as un autre option à me proposer? ^^
Miembro registrado
27 mensajes
Publicado el 27,marzo 2020 - 16:23
Salut,

Ca va être compliqué d'afficher ta table en format stars war ;)
____
/ \
/ \
/__________\

Ca c'était pour le clin d'oeil ;)

Sinon une boucle qui défile jusqu'au nombre d’occurrences avec un timer à l'intérieur pour maîtriser la durée du défilement ...
Miembro registrado
27 mensajes
Publicado el 27,marzo 2020 - 16:24
Salut,


Une boucle qui défile jusqu'au nombre d’occurrences avec un timer à l'intérieur pour maîtriser la durée du défilement ...
Miembro registrado
110 mensajes
Publicado el 30,marzo 2020 - 08:44
Merci Gilles pour le ;) :merci:

J'ai écris ce code :

TimerSys(Defilement_Table,100,3)

Procedure Defilement_Table()

SI TableOccurrence(TABLE_En_attente)>0 ALORS
SI xNum_Ligne >=TableOccurrence(TABLE_En_attente) ALORS
xNum_Ligne=1
//TableSelectPlus(TABLE_En_attente,xNum_Ligne)
TablePosition(TABLE_En_attente,xNum_Ligne)
SINON
//TableSelectPlus(TABLE_En_attente,xNum_Ligne)
TablePosition(TABLE_En_attente,xNum_Ligne)
FIN
xNum_Ligne+=1
FIN


Qui fonctionne mais qui n'est pas aussi esthétique que je le voulais, mais ça fera l'affaire :D

Merci beaucoup pour ton temps

bon dev
Miembro registrado
7 mensajes
Publicado el 30,marzo 2020 - 10:07
Bonjour,

Il est possible de faire défiler comme tu le demandes.
Reste à voir pour trouver la position d'arrêt.

Voici un exemple à adapter

PosMax est un entier
Pos est un entier

PosMax = AscenseurPositionMax(TABLE_En_attente,ascVert)

TANTQUE Pos <= PosMax
AscenseurPosition(TABLE_En_attente,ascVert, Pos)
Pos++
Temporisation(10ms)
FIN


Bonne journée.
Sébastien
Miembro registrado
110 mensajes
Publicado el 31,marzo 2020 - 08:55
Bonjour Sébastien,

A l'origine je ne voulais pas passer par la position de l’ascenseur puisque ce dernier n'étai pas affiché.
Mais j'ai testé ta version et effectivement elle est bien plus fluide.
J'ai réussi à rendre mon ascenseur "invisible" en jouant sur les couleurs pour le fondre dans le décors.

J'ai créé deux procédures et je déclenche la première à l'ouverture.

Procedure Vers_Le_Bas()

PosMax est un entier= AscenseurPositionMax(TABLE_En_attente,ascVert)
xPos est un numérique

TANTQUE xPos <= PosMax
AscenseurPosition(TABLE_En_attente,ascVert, xPos)
xPos=xPos+0.1
Temporisation(10ms)
FIN

Vers_Le_Haut()


Procedure Vers_Le_Haut()

PosMin est un entier = 0
xPos est un numérique = AscenseurPositionMax(TABLE_En_attente,ascVert)

TANTQUE xPos >= PosMin
AscenseurPosition(TABLE_En_attente,ascVert, xPos)
xPos=xPos-0.1
Temporisation(10ms)
FIN

Vers_Le_Bas()


Du coup j'ai un va et vient bien fluide qui me convient parfaitement.

Merci beaucoup pour m'avoir fait changer d'avis sur l'option "ascenseur"

Bon dev