Timer

Le
David
Bonjour à tous,

Je n'arrive pas à utiliser Timer.
Je désire faire apparaître un message dans le coin
inférieur droit de l'écran.
Et freiner la remontée de la Form avec le Timer.
Mais programmé comme je l'ai fait ça retarde juste
l'apparition initiale de la Form.
Merci de m'indiquer comment modifier mon code.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.


>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
Dim taskbarHeight

Private Sub Form_Load()

'Call Load_Chat_File(App.Path & "MessageChat.txt", "USER_TAKE:")

Label1.Height = MessagePopup.Height
Label1 = "Test de message"
'Label1 = TexteMessage

Dim ABD As APPBARDATA
Dim taskbar As Long
SHAppBarMessage ABM_GETTASKBARPOS, ABD
taskbar = (ABD.rc.Bottom - ABD.rc.tOp) * Screen.TwipsPerPixelY

taskbarHeight = taskbar

' POSITIONNEMENT DE LA FENÊTRE.
MessagePopup.left = (Screen.Width - MessagePopup.Width - 50) ' - &H10
MessagePopup.tOp = (Screen.Height - taskbar)

Timer1.Enabled = True

End Sub

Private Sub Timer1_Timer()

Dim Ok As Boolean

Do Until Ok = True
If MessagePopup.tOp > Screen.Height - MessagePopup.Height -
taskbarHeight Then
MessagePopup.tOp = MessagePopup.tOp - 10 '0: MsgBox
("R")

Else
MessagePopup.tOp = Screen.Height - MessagePopup.Height -
taskbarHeight
Timer1.Enabled = False
Ok = True
' MsgBox ("3R")
End If
DoEvents
Loop

End Sub

Private Sub Label1_Click()
Unload MessagePopup
End Sub
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Gloops
Le #20943661
David a écrit, le 10/01/2010 12:29 :
Bonjour à tous,

Je n'arrive pas à utiliser Timer.
Je désire faire apparaître un message dans le coin
inférieur droit de l'écran.
Et freiner la remontée de la Form avec le Timer.
Mais programmé comme je l'ai fait ça retarde juste
l'apparition initiale de la Form.
Merci de m'indiquer comment modifier mon code.




Bonjour,

Ben oui mais tu ne dis pas comment tu l'as programmé, alors on fait
comment pour te dire ce qui doit être modifié ?
Jacquouille14
Le #20943891
David a écrit :
Bonjour à tous,

Je n'arrive pas à utiliser Timer.
Je désire faire apparaître un message dans le coin
inférieur droit de l'écran.
Et freiner la remontée de la Form avec le Timer.
Mais programmé comme je l'ai fait ça retarde juste
l'apparition initiale de la Form.
Merci de m'indiquer comment modifier mon code.




Bonsoir,
Je ne mettrais pas le dim OK dans la Sub Timer1_Timer car
il y a initialisation à chaque appel de timer1 et il ne semble pas
nécessaire.
Dans form load, je mettrais le me.top = screen.height - 100 (à définir)
pour la faire apparaitre par le bas. Le message est en haut de la form.
MessagePopup.tOp = me.top + 100
Ensuite dans form load je lance le timer1. (je fais quelques tests pour
savoir la fréquence de déclenchement que je désire en 1000èmes de
seconde.) Dans sub timer1:
if me.top < 20
me.top =0: Timer1.Enabled = False'la form est en place
'le message peut disparaitre si inutile
else
me.top = me.top -20'la form remonte de 20 lignes
end if
Replacer le message popup pour ne pas qu'il monte avec la form:
MessagePopup.tOp = MessagePopup.tOp + 20
end sub 'timer1
Il faut au moins 25 appels de timer par seconde pour avoir un mouvement
continu soit 1 appel tous les 40 millièmes de seconde (interval).
Screen.height donne le nombre de lignes de l'écran. Si l'on
veut l'apparition totale de la page en 10 secondes:
lignes à monter par seconde = (screen.height -100)/10
lignes par appel timer1 = int((screen.height -100)/10/25)
Noter qu'il peut être utile de bloquer tous les clics pendant la montée
de la feuille.
Les nombres 100 20 10 sont pris au "pif".
Tout ça est à finaliser à votre goût.
--

Jacques dit Jacquouille
at
Le #20944291
David a formulé la demande :
Bonjour à tous,

Je n'arrive pas à utiliser Timer.
Je désire faire apparaître un message dans le coin
inférieur droit de l'écran.
Et freiner la remontée de la Form avec le Timer.
Mais programmé comme je l'ai fait ça retarde juste
l'apparition initiale de la Form.
Merci de m'indiquer comment modifier mon code.



Je pense que ton timer est inutile. Tu appelles directement ta routine
pour faire apparaître et remonter ta form, point barre. Et la routine
contient:


do while ...

doevents

loop

Si tu veux un effet de ralenti, tu changes le pas d'incrémentation au
fur et à mesure.

en gros ça donne

Private Sub Command1_Click()
Dim x, y, z, w
Me.Top = 6000
w = 3000
x = Me.Top
y = Me.Top - w
Do While x > y
Me.Top = x
x = x - (0.01 * z)
z = (x * 2 / (w))
DoEvents
'Label1.Caption = z
Loop

End Sub

A+
David
Le #20952721
Bonjour,

Un grand Merci pour vos réponses.

--
a+ Jean-Pol
Site Web : www.colovid.be
Site Web perso pour le fun : http://users.skynet.be/DAVID/
Cette page est transmise avec des électrons 100% recyclés.


"at" 4b4a0b72$0$959$
David a formulé la demande :
Bonjour à tous,

Je n'arrive pas à utiliser Timer.
Je désire faire apparaître un message dans le coin
inférieur droit de l'écran.
Et freiner la remontée de la Form avec le Timer.
Mais programmé comme je l'ai fait ça retarde juste
l'apparition initiale de la Form.
Merci de m'indiquer comment modifier mon code.



Je pense que ton timer est inutile. Tu appelles directement ta routine
pour faire apparaître et remonter ta form, point barre. Et la routine
contient:


do while ...

doevents

loop

Si tu veux un effet de ralenti, tu changes le pas d'incrémentation au fur
et à mesure.

en gros ça donne

Private Sub Command1_Click()
Dim x, y, z, w
Me.Top = 6000
w = 3000
x = Me.Top
y = Me.Top - w
Do While x > y
Me.Top = x
x = x - (0.01 * z)
z = (x * 2 / (w))
DoEvents
'Label1.Caption = z
Loop

End Sub

A+




Publicité
Poster une réponse
Anonyme