OVH Cloud OVH Cloud

Comment le faire ?

12 réponses
Avatar
GP
Bonjour à tous,

J'ai un petit problème qui est certainement dérisoire, mais bon ...

J'ai créé une fenêtre libre affichant un message d'attente dans un
libellé
Je veux utiliser une image GIF animée ( curseur du catalogue Windev )

Lorsque j'exécute la fenêtre seule : pas de problème l'animation
fonctionne

Mais si j'ouvre cette fenêtre avec OuvreSoeur(FenMessage) l'animation
reste figée


J'ai essayé de mettre Multitache() dans la fenêtre FenMessage : pas
d'animation


Comment faire pour que l'animation fonctionne dans FenMessage pendant
qu'une procédure s'exécute dans la fenêtre appelante ?

Merci d'avance

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com

10 réponses

1 2
Avatar
Roumegou Eric
Alors là, si tu y arrives ça m'interresse.
J'ai essayé de faire cela (en 5.5 et en 7.5) et puis j'ai abandonné.
Je faisais des multitaches pour que mon gif s'exite avant et après la
vraie tempo, donc je provoquais une attente artificielle et qq fois
plus longue que l'attente necessaire à l'appli.
Alors, j'ai arrêté mes conneries. J'avais plus de 200 gifs qui
s'animaient de façon aléatoire, pour amuser l'utilisateur, lors des
tempos.
Ensuite (en 7.5), j'ai voulu aménagér ma gestion de tempo pour que cela
ne se déclenche qu'après un certain temps (comme le fût du canon) avec
des timers, mais le résultat n'était pas satisfaisant.
Donc, tout ça pour te dire que moi j'ai perdu du temps là dessus avant
d'abandonner.
Eric


GP a couché sur son écran :
Bonjour à tous,

J'ai un petit problème qui est certainement dérisoire, mais bon ...

J'ai créé une fenêtre libre affichant un message d'attente dans un libellé
Je veux utiliser une image GIF animée ( curseur du catalogue Windev )

Lorsque j'exécute la fenêtre seule : pas de problème l'animation fonctionne

Mais si j'ouvre cette fenêtre avec OuvreSoeur(FenMessage) l'animation reste
figée


J'ai essayé de mettre Multitache() dans la fenêtre FenMessage : pas
d'animation


Comment faire pour que l'animation fonctionne dans FenMessage pendant qu'une
procédure s'exécute dans la fenêtre appelante ?

Merci d'avance



--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Gilles G.
In article ,
says...
Bonjour à tous,
J'ai un petit problème qui est certainement dérisoire, mais bon ...
J'ai créé une fenêtre libre affichant un message d'attente dans un
libellé
Je veux utiliser une image GIF animée ( curseur du catalogue Windev )
J'ai essayé de mettre Multitache() dans la fenêtre FenMessage : pas
d'animation
Comment faire pour que l'animation fonctionne dans FenMessage pendant
qu'une procédure s'exécute dans la fenêtre appelante ?



Il faut que ton Multitache soit appelé dans le traitement et pas dans la
fenêtre d'attente.


Autre solution, mettre ton traitement dans un thread.
Avatar
GP
Bonjour

Il se trouve que Gilles G. a formulé :

Il faut que ton Multitache soit appelé dans le traitement et pas dans la
fenêtre d'attente.



Peux-tu me préciser par un exemple par rapport à l'ordre d'ouverture de
la fenêtre contenant le GIF
car j'ai essayé et ça ne marche pas !


Autre solution, mettre ton traitement dans un thread.


Trop compliqué pour une broutille

Merci

Cordialement

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Romain PETIT
Il se trouve que GP a formulé :

Il faut que ton Multitache soit appelé dans le traitement et pas dans la
fenêtre d'attente.





Peux-tu me préciser par un exemple par rapport à l'ordre d'ouverture de la
fenêtre contenant le GIF
car j'ai essayé et ça ne marche pas !



Attention, il faut utiliser multitache(-1) et pas multitache()

Par exemple :
OuvreFille(Fen_filleImage)
c est un entier
POUR c=1 A 5000
Trace(c)
Multitache(-1)
FIN
Ferme(Fen_filleImage)

Gros problème : le traitement est *très* fortement ralenti.

Autre solution, mettre ton traitement dans un thread.





Trop compliqué pour une broutille



Pas si compliqué que ça.
En plus ça te permettrait d'apprendre les threads avec un exemple
simple.

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
GP
Bonjour

Romain PETIT a utilisé son clavier pour écrire :

En plus ça te permettrait d'apprendre les threads avec un exemple simple.




J'ai essayé : l'affichage de la fenêtre est falshée : ouverture suivi
d'une fermeture immédiate ou alors ouverture et GIF reste inanimé

Je suis certainement trop con : finalement l'utilisation d'une jauge
est plus simple

Merci encore

Cordialement

--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Roumegou Eric
Le 11/01/2004, GP a supposé :
Bonjour

Romain PETIT a utilisé son clavier pour écrire :

En plus ça te permettrait d'apprendre les threads avec un exemple simple.




J'ai essayé : l'affichage de la fenêtre est falshée : ouverture suivi d'une
fermeture immédiate ou alors ouverture et GIF reste inanimé

Je suis certainement trop con : finalement l'utilisation d'une jauge est plus



Alors bienvenue au club ;-)
moi, je n'ai réussi à obtenir que des solutions à contre emploi. Pour
faire patienter, j'augmentais le temps d'attente.Mais pendant
l'execution de mon traitement, le gif restait inanimé.

simple

Merci encore

Cordialement



--
Eric Roumegou
http://cerbermail.com/?Wk2D8D62KI
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
Romain PETIT
Il se trouve que GP a formulé :

J'ai essayé : l'affichage de la fenêtre est falshée : ouverture suivi d'une
fermeture immédiate ou alors ouverture et GIF reste inanimé



***** fenetre principale
ThreadExécute("t1",threadNormal,"pl_boucle")
// traitement quelconque
c est un entier
POUR c=1 A 2000
Trace(c+ " "+ThreadPriorité("t1"))
FIN
ThreadArrête("t1")


**** procédure locale
PROCEDURE pl_boucle()
// fen_fille contient un GIF animé
OuvreFille(Fen_fille)
BOUCLE
Multitache(-1)
FIN

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
Avatar
GP
Bonjour Romain et merci infiniment pour ton aide précieuse

Cette fois-ci c'est Ok : J'ai adapté correctement ton exemple

J'ai comparé les durées d'exécution :
Avec le Thread : durée d'exécution 6 secondes 15
Avec la jauge : durée d'exécution 5 secondes 38

La différence n'est pas grande

Merci encore

Cordialement



Romain PETIT a présenté l'énoncé suivant :
Il se trouve que GP a formulé :

J'ai essayé : l'affichage de la fenêtre est falshée : ouverture suivi d'une
fermeture immédiate ou alors ouverture et GIF reste inanimé



***** fenetre principale
ThreadExécute("t1",threadNormal,"pl_boucle")
// traitement quelconque
c est un entier
POUR c=1 A 2000
Trace(c+ " "+ThreadPriorité("t1"))
FIN
ThreadArrête("t1")


**** procédure locale
PROCEDURE pl_boucle()
// fen_fille contient un GIF animé
OuvreFille(Fen_fille)
BOUCLE
Multitache(-1)
FIN



--
Ceci est une signature automatique de MesNews.
Site : http://mesnews.no-ip.com
Avatar
Fabrice Burghgraeve
salut Romain.

"Romain PETIT" a écrit dans le message de
news:
Il se trouve que GP a formulé :

> J'ai essayé : l'affichage de la fenêtre est falshée : ouverture suivi


d'une
> fermeture immédiate ou alors ouverture et GIF reste inanimé

***** fenetre principale
ThreadExécute("t1",threadNormal,"pl_boucle")
// traitement quelconque
c est un entier
POUR c=1 A 2000
Trace(c+ " "+ThreadPriorité("t1"))
FIN
ThreadArrête("t1")


**** procédure locale
PROCEDURE pl_boucle()
// fen_fille contient un GIF animé
OuvreFille(Fen_fille)



-------
BOUCLE
Multitache(-1)
FIN


--------

L'utilisation d'un semaphore ne serait-il pas plus elegant et efficace que
cette boucle ?

Bon excuse moi j'ai la critique facile ta solution est bien.
En tout cas mieux que celle que j'ai donnée puisque j'en ai pas donnée ;)
On va pas faire de l'en****ge de mouches non plus...

--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
Avatar
Romain PETIT
Dans son message précédent, Fabrice Burghgraeve a écrit :
salut Romain.



Salut Fabrice,

**** procédure locale
PROCEDURE pl_boucle()
// fen_fille contient un GIF animé
OuvreFille(Fen_fille)


-------
BOUCLE
Multitache(-1)
FIN


--------



L'utilisation d'un semaphore ne serait-il pas plus elegant et efficace que
cette boucle ?



Je ne vois pas trop l'utilité d'un sémaphore ici...
Je ne les utilise que très rarement mais il me semble que cela n'est
utile que pour éviter les problèmes de code éxécuté par plusieurs
threads simultanément.
J'imagine que tu pensais plutôt aux signaux ?

***** fenetre principale
ThreadExécute("t1",threadNormal,"pl_OuvertureFille")
// traitement quelconque
c est un entier
POUR c=1 A 2000
Trace(c)
FIN
ThreadEnvoieSignal("t1")

**** procédure locale
PROCEDURE pl_OuvertureFille()
OuvreFille(Fen_filleImage)
ThreadAttendSignal(Infini)
Ferme(Fen_filleImage)

On va pas faire de l'en****ge de mouches non plus...



Bah si, c'est aussi grâce à ça qu'on avance dans son apprentissage...

A+

--
Romain PETIT
http://cerbermail.com/?IJmancZl88
(cliquez sur le lien ci-dessus pour me contacter en privé)
1 2