Mouvement de contrôle

startout - 12 oct. 2001 à 09:54
 startout - 3 déc. 2001 à 16:00
Bonjour,

J'aimerais savoir comment faire pour quand je clique sur un label, ce dernier puisse changer de place et le mettre ou je veux...en lachant le bouton de la souris.
Merci d'avance de votre aide.

7 réponses

Il faut faire quelquechose comme ceci :
D'abord tu déclares ceci dans la section Générale :
Dim ControleADeplacer as Control
Dim Deplacement as Boolean 'Initialisé a False

Dans le MonLabel_Click, tu met :
Deplacement = True
set ControleADeplacer = MonLabel

Dans le Form_MouseMove, tu tapes :
if Deplacement then
ControleADeplacer.CurrentX = X
ControleADeplacer.CurrentY = Y
end if

Enfin, dans le Form_MouseUp, tu mets :
if Deplacement then
ControleADeplacer.CurrentX = X
ControleADeplacer.CurrentY = Y
end if
Deplacement = False

Voilà, normalement, ça marche.
:clown)
0
J'ai testé ce que j'ai mis et y a 2 ou 3 erreurs, voici un vrai code qui marche :
'Section générale
Dim ControleADeplacer as Control
Dim Deplacement as Boolean  'Initialisé a False

'MonLabel_Click
if Not Deplacement then
    Deplacement = True
    Set ControleADeplacer = MonLabel
else
    Deplacement = False
end if

'Form_MouseMove
if Deplacement then
    ControleADeplacer.CurrentX = X
    ControleADeplacer.CurrentY = Y
end if

'Voilà, donc tu cliques une première fois sur ton label, puis tu déplaces ta souris (pas la peine de garder le bouton appuyé) et quand tu veux positionner ton label, tu cliques une fois à l'endroit voulu. Bon c'est sur, on peut faire mieux, mais au moins, tu obtiens l'effet voulu, il ne te reste plus qu'à faire 2-3 modifications pour que cela soit parfait


:clown)
0
Excuse moi, je dois être fatigué :sleepy) , mais il faut remplacer CurrenX par Left et CurrentY par Top. Ca m'apprendra à faire des copier-coller sans vérifier ce que je mets. :blush)
Voici la vrai version qui marche :
'Section générale
Dim ControleADeplacer as Control
Dim Deplacement as Boolean  'Initialisé a False

'MonLabel_Click
if Not Deplacement then
    Deplacement = True
    Set ControleADeplacer = MonLabel
else
    Deplacement = False
end if

'Form_MouseMove
if Deplacement then
    ControleADeplacer.Left= X
    ControleADeplacer.Top = Y
end if

'Voilà, donc tu cliques une première fois sur ton label, puis tu déplaces ta souris (pas la peine de garder le bouton appuyé) et quand tu veux positionner ton label, tu cliques une fois à l'endroit voulu. Bon c'est sur, on peut faire mieux, mais au moins, tu obtiens l'effet voulu, il ne te reste plus qu'à faire 2-3 modifications pour que cela soit parfait

:clown)
0
Merci beaucoup. C'est vraiment cool.
Je n'ai pas encore essayé mais je sens que c'est ça.
0

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

Posez votre question
Salut
je viens d essayer ton code, car je cherchais aussi comment faire, ca ne marche que si on deplace la souris sur la fenetre, mais comment faire pour que ca le deplace aussi quand on se deplace sur le control ? (cad, si je clic en haut du control et que je vais vers le bas, ben ca ne bouge plus, par contre si je vais vers le haut, en dehors de mon control, ca bouge) tu vois ?
0
Salut
je viens d essayer ton code, car je cherchais aussi comment faire, ca ne marche que si on deplace la souris sur la fenetre, mais comment faire pour que ca le deplace aussi quand on se deplace sur le control ? (cad, si je clic en haut du control et que je vais vers le bas, ben ca ne bouge plus, par contre si je vais vers le haut, en dehors de mon control, ca bouge) tu vois ?
0
Cela fait un moment que j'ai laissé.
Mais je me souvient avoir essayé et qu'apres dû modifier un peu le code...pas de beaucoup
0
Rejoignez-nous