DESSINER

fdiedler2000
Messages postés
383
Date d'inscription
samedi 29 janvier 2005
Statut
Membre
Dernière intervention
1 décembre 2008
- 25 janv. 2007 à 20:49
Cacophrene
Messages postés
251
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
- 28 janv. 2007 à 10:40
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/41258-dessiner

Cacophrene
Messages postés
251
Date d'inscription
lundi 29 mars 2004
Statut
Membre
Dernière intervention
4 mars 2008
1
28 janv. 2007 à 10:40
Salut !

Quant à moi je pense qu'une description un peu moins lapidaire de ton code serait la bienvenue.

Cordialement,
Cacophrène
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 janv. 2007 à 12:41
StartX et StartY ne servent a rien .
Me.CurrentX et Me.CurrentY sont les cooordonnées qui sont utilisées comme départ pour Line, Print, etc....

dans MouseDown, tu l'initialise
dans MouseMove, tu n'a qu'a tracer depuis cette position jusqu'au point (X;Y) survollé par ta souris... CurrentX et CurrentY sont ensuite automatiquement mis à jour avec X et Y...

je vois nullement l'interet de créer deux variables pour cela, ca fait double emploi.

et ton code a surtout un TRES gros désavantage : tu utilises des Long, ton tracé sera moins précis, voire COMPLETEMENT FAUX si tu change le ScaleMode de ta Form...
(joli, mais faux)... utilises le ScaleMode '5 - Inch' pour t'en convaincre.
phpnuke
Messages postés
14
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
28 septembre 2007

26 janv. 2007 à 12:19
NON Renfield ce n'et pas comme tu l'as dit mais voila la correction.
Avec ta source on fait juste une ligne mais cela ne m'interesse pas.

Private startX As Long
Private startY As Long
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
startX = X
startY = Y
End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 Then
Form1.Line (startX, startY)-(X, Y)
End If
End Sub
phpnuke
Messages postés
14
Date d'inscription
jeudi 22 mai 2003
Statut
Membre
Dernière intervention
28 septembre 2007

26 janv. 2007 à 09:48
Merce Renfield enfin un commentaire inteligent
Renfield
Messages postés
17287
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
27 septembre 2021
71
26 janv. 2007 à 08:58
Down ne sert pas

startX et startY pourraient disparaitre également :

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
Me.CurrentX = X
Me.CurrentY = Y
End If
End Sub

Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = vbLeftButton Then
Me.Line -(X, Y)
End If
End Sub
Afficher les 6 commentaires