ANIMATION D'IMAGES

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 - 30 juil. 2008 à 09:12
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 - 9 août 2008 à 14:43
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/47440-animation-d-images

cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
9 août 2008 à 14:43
Comme la source me paraissait légère j'ai ajouté une animation dans un bouton en me servant des données existantes, rien de bien sorcier, mais qui peut intéresser certaines personnes.
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
30 juil. 2008 à 15:50
Le but de cette source est bien sur de voir les deux modes de fonctionnement. Il est bien évident qu'en l'état elle ne sera jamais utilisée.
Merci à vous deux de votre intérêt pour une si petite source.
@+
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 juil. 2008 à 15:39
j'aurais peut-être plus vu quelque chose de ce genre :

Private Sub btnarret_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnarret.Click, btnstop.Click Dim oTimer As Timer IIf(sender.name.ToString "btnarret", tmrAnimation, tmrImage)
oTimer.Enabled = Not oTimer.Enabled
sender.Text = IIf(oTimer.Enabled, "&Stop", "&Start")
oTimer = Nothing
End Sub

après y'a pas non plus besoin de 2 timers, ni même réellement de le désactiver en fait...

enfin bon, tel quel au moins on voit bien les 2 modes de fonctionnement
je maintiens que çà me semble très léger... :(

ps : normal que GR ne soit pas détruit/libéré?
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 juil. 2008 à 15:06
Un truc genre
Private Sub btnstop_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnstop.Click,btnarret.Click
if sender if btnstop then
If tmrImage.Enabled = True Then
btnstop.Text = "&Start"
tmrImage.Stop()
Else
btnstop.Text = "&Stop"
tmrImage.Start()
End If
else sender is btnarret then
If tmrAnimation.Enabled = True Then
btnarret.Text = "&Start"
tmrAnimation.Stop()
Else
btnarret.Text = "&Stop"
tmrAnimation.Start()
End If
End if
End Sub

Enfin il y a peut être plus court, mais cela évite déjà d'avoir 2 subs.
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
30 juil. 2008 à 14:50
salut,
le code de btnstop_Click et btnarret_Click sont quasiment les mêmes.
il n'y a pas quelque chose à faire avec les handles pour ne pas avoir cette redondance?
(pour 'simuler' un groupe de contrôle quoi)

très léger comme code quand même. transformer çà en UC peut-être?
++ ;)
cs_Le Pivert Messages postés 7903 Date d'inscription jeudi 13 septembre 2007 Statut Contributeur Dernière intervention 11 mars 2024 137
30 juil. 2008 à 10:59
Tout à fait exact et en plus de raccourcir le code, cela évite tout bug dû aux erreurs de saisie du nombre d'images.
Merci NHENRY
@+
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
30 juil. 2008 à 09:12
Pour cette partie de ton code, il y a mieux (enfin je pense) :
# Private Sub tmrImage_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrImage.Tick
# ' Mettre l'image dans la PictureBox.
# PictureBox1.Image = imgList.Images(m_ControlCount)
#
# 'Augmentez le compte (s)
# m_ControlCount += 1
#
# 'Si l'image finale a été montrée
# 'On recommence# If m_ControlCount 19 Then m_ControlCount 0 '19 Nombre d'images dans l'imagelist
# End Sub

# Private Sub tmrImage_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrImage.Tick
# ' Mettre l'image dans la PictureBox.
# PictureBox1.Image = imgList.Images(m_ControlCount)
#
# 'Augmentez le compte avec RAZ auto (et en fonction du nombre d'image réel)
# m_ControlCount = (m_ControlCount+1) mod imgList.Images.count

# End Sub
Rejoignez-nous