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

2 réponses

1 2
Avatar
Romain PETIT
(supersedes )

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...
L'utilisation du signal au lieu de la boucle doit certainement prendre
beaucoup moins de CPU.

A+

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

"Romain PETIT" a écrit dans le message de
news:
(supersedes )

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...



ben en fait en y reflechissant apres coup, je me demande si ca irait car
cela bloquerait le thread, alors est-ce que la gif animée serait encore
animée ?
(meme remarque avec un signal)

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.



pas *que* pour ca.
Tu peux faire le genre de synchro dont on a besoin ici avec des semaphores.
principe :
le thread principal cree un semaphore avec 0 jetons dedans.
il lance le thread secondaire.
il fait son traitement (long)
il met un jeton dans le semaphore.

le thread secondaire fait son traitement (ouverture de fenetre ici)
puis il demande un jeton au semaphore.
Il reste bloqué (sans consommation de ressource) jusqu'a ce que le programme
principal mette le jeton.

J'imagine que tu pensais plutôt aux signaux ?



Euh non je pensais bien aux semaphores...
Mais ca doit etre parce que je suis plus habitue a unix, et le systeme
utilise beaucoup moins les signaux que windows.
Hormis les signaux systeme, il y a peu de signaux "user" (2 si je me
souviens bien)
Mais effectivement, avec un signal ca doit aller aussi.
(...)


--
Fabrice Burghgraeve
Computer & Services
suivez ce lien pour me repondre en prive :
http://cerbermail.com/?I3GMPRuXDD
1 2