Move frame

Résolu
mr404 Messages postés 16 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 5 novembre 2008 - 4 nov. 2008 à 17:21
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 6 nov. 2008 à 09:00
Bonjour,

J'ai un petit probléme..

J'arrive bien a bouger le frame et a le faire re-apparaitre mais pas a le stopper c'est a dire le faire bouger une fois par click sur le command1.
Private Sub Command1_Click()
    Timer1.Enabled = True
  
End Sub


Private Sub Timer1_Timer()
Frame1.Left = Frame1.Left + 20    If Frame1.Left >Me.Width Then Frame1.Left 120 And Timer1.Enabled = False
   
End Sub

une idée 

merci

bauhaus

14 réponses

mr404 Messages postés 16 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 5 novembre 2008
5 nov. 2008 à 21:54
Bonsoir,

ok


If picAll.Left <= -Me.Width Then pour la gauche

Je cherchais seulement une piste....pas une solution toute faite... et certainement pas un jeu de devinette.

Enfin, bref.........

merci

mr404
3
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 nov. 2008 à 18:10
Salut,
Bizarre cette ligne
If Frame1.Left ><gras>Me.Width Then Frame1.Left 120 And Timer1.Enabled = False</gras>

Que souhaites tu faire?

Est ce ceci?

If Frame1.Left >= Me.Width Then
        Frame1.Left = 120
        Timer1.Enabled = False
End if

Autre question, Pourquoi utiliser un TIMER????
Que souhaites tu faire exactement?

@+: Ju£i€n
Pensez: Réponse acceptée
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 nov. 2008 à 18:15
salut,

outch oui ^^
AND est un opérateur logique, pas une manière de dire fait ci ET fait çà :p

sinon tu auras des AND à chaque ligne non?.....

(pour le timer, sans doute pour cliquer une seule fois pour le déplacement complet progressif)

ps : tu testes Frame1.Left >= Me.Width, çà ne serait pas plutôt SCREEN.WIDTH?
et tu replaces à 120..., visuellement çà va passer d'extrême droite à gauche d'un coup...
<hr size="2" width="100%" />Prenez un instant pour répondre à [forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 nov. 2008 à 18:15
j'ai dis une bétise pour screen.width, pardon
(frame, pas form....)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
mr404 Messages postés 16 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 5 novembre 2008
4 nov. 2008 à 19:10
ok j'ai testé ça

Private Sub Command6_Click()
    Timer1.Enabled = True
  
End Sub


Private Sub Timer1_Timer()
Frame1.Left = Frame1.Left + 300
    If Frame1.Left >= Me.Width Then
    Frame1.Left = 120
    Timer1.Enabled = False
   End If
End Sub

cela fonction la frame bouge vers la droite puis se repositionne a left 120

je voudrais maintenant faire la manip vers la gauche....
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 nov. 2008 à 21:10
Bonjour,

j'espère que tu ne vas pas faire un 2ème timer pour si peu !!!...
Alors :
 - soit deux boutons (un pour la droite et l'autre pour la gauche)
- soit tes flèches directionnelles

Dans les deux cas : une variable générale ( -1 pour la gauche et 1 pour la droite) que tu utilise comme coeficient multiplicateur dans ton Timer...
Tout cela est simple et relève plus de la logique que de la connaissance de VB.
0
mr404 Messages postés 16 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 5 novembre 2008
4 nov. 2008 à 21:32
Bonjour,
je dois pas etre logique alors...mais ok pas de deuxieme timer :)
pour la variable 1  je suis ok

mais je ne vois pas bien pour la variable -1 ?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
4 nov. 2008 à 21:39
Ah !...
et que ferait par exemple ceci, alors, avec Coef = .1

Frame1.Left = Frame1.Left + (300*coef)

d'après toi ?
Mais ce n'est pas tout ... (va te falloir faire une condition selon coef, un peu plus loin...... mais ce ne sera encore qu'une question de logique pure ...)
Faut savoir mériter les choses ....===>> au boulot ...
0
mr404 Messages postés 16 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 5 novembre 2008
4 nov. 2008 à 22:30
je ne vois vraiment pas ..un exemple serait le bienvenu au moins pour une variable
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 nov. 2008 à 22:36
re,

si "300" est dasn une variable accessible (déclarations générales), il suffit simplement de mettre "300" pour droite, et "-300" pour gauche

x + (-y) est une syntaxe valide
left +300
left + (-300)

possible aussi de "coefficienter" par une multiplication négative (c'est ce qu'évoque

[../auteur/JMFMARQUES/615490.aspx jmfmarques]

, le ".1" étant alors trompeur dan le contexte, cf la question elle-même)

même principe donc :
300 * 1 = 300
300*(-1) = -300


x + (-y) est toujours une syntaxe valide



clarifié, plus qu'à taper 5 lignes de code et en modifier 1
bonne soirée

<hr size="2" width="100%" />
Prenez un instant pour répondre à [forum/sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp 
0
mr404 Messages postés 16 Date d'inscription dimanche 3 avril 2005 Statut Membre Dernière intervention 5 novembre 2008
4 nov. 2008 à 22:49
j'ai bien compris pour la variable - 300

mais le probléme persiste pour le re-affichage du frame coté gauche
pour la droite j'utilise
If Frame1.Left >= Me.Width
Then Frame1.Left = 120

mais pour la gauche le frame disparait ...
0
PCPT Messages postés 13272 Date d'inscription lundi 13 décembre 2004 Statut Membre Dernière intervention 3 février 2018 47
4 nov. 2008 à 23:06
en même temps 15 minutes d'essais.... 
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
5 nov. 2008 à 08:21
Salut,

>[../auteur/MR404/482690.aspx mr404] : tu comprends ce que tu codes ou pas? Ou bien tu cherches simplement à ce que l'on fasse TOUT le travail à ta place? En te lisant, on a pas vraiment l'impression que tu aies "soif" d'apprendre

@+: Ju£i€n
Pensez: Réponse acceptée
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
6 nov. 2008 à 09:00
La piste, tu l'as eue ... et assez clairement ...
Le reste est de la logique élémentaire et un minimum d'arithmétique (également élémentaire ...)!
Et peut-être quelques essais !


 
0
Rejoignez-nous