Ligne

nabilwael Messages postés 62 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 11 mars 2010 - 17 avril 2007 à 15:45
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 17 avril 2007 à 16:14
Bonjour,
Je suis vraiment désolé mais j'ai pa arrivé a faire ce que je veux.
Bref, voila le code que je possède


Option Explicit
Dim DragX As Single, DragY As Single
 
Private Sub begin_Click() ' command button
begin_im.Visible = True
End Sub


Private Sub end_Click() ' command button
end_im.Visible = True
End Sub


Private Sub Form_DragDrop(Source As Control, _
      X As Single, Y As Single)
   Source.Move (X - DragX), (Y - DragY)
End Sub


'permet de déplacer l'image1
Private Sub begin_im_MouseDown(Button As Integer, _
      Shift As Integer, X As Single, Y As Single)
   begin_im.Drag 1
   DragX = X
   DragY = Y
End Sub


'permet de déplacer l'image2
Private Sub end_im_MouseDown(Button As Integer, _
      Shift As Integer, X As Single, Y As Single)
   begin_im.Drag 1
   DragX = X
   DragY = Y
End Sub


Mon premier problème est que quand je clique une autre fois sur le boutton begin par exemple l'image begin_im ne s'affiche pas une autre fois
(pas de duplication d'image)
Mon deuxième problème est que j'arrive pas à dessiner une ligne vertical ou horizontal malgré que j'ai mis c'est deux codes:


1) le problème de ce code est que la sourie prend toujours les derniers coordonnées alors les lignes sont toujours attachées
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
   If Button = vbLeftButton Then       If Me.CurrentX 0 And Me.CurrentY 0 Then
           Me.CurrentX = X
           Me.CurrentY = Y
       End If
       Me.Line -(X, Y)
   End If
End Sub


2) le problème de ce code  les lignes sont inclinées et sortent de la mème point
Private startX As Long
Private startY As Long
Private Sub picDraw_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    startX = X
    startY = Y


End Sub


Private Sub picDraw_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
            picDraw.Line (startX, startY)-(X, Y)
            Else
            End If
            End Sub  


merci de m'aider

6 réponses

drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
17 avril 2007 à 15:52
Salut, il y a du progrès

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
17 avril 2007 à 15:58
Bon...
Je crois que tu as déjà eu assez de réponses (dont les miennes) à ce sujet (y compris l'exemple de l'aide en ligne de VB).
Aller plus loin serait te faire ton exercice, carrément.
Si tu veux développer, il te faut d'abord apprendre l'essentiel : lire, analyser, extraire ce dont tu as besoin. (et apprendre accéssoirement à bien définir ses problèmes)
Tes autres messages, les réponses que tu as reçues et celles que tu as données, me donnent hélàs à penser que soit tu ne veux pas développer, sois tu n'es pas du tout préparé à le faire....
Que veux-tu donc ? qu'on te fasse ton exercice ? Donne-nous alors son ennoncé, tel qu'il est... et qu'on en finisse.
0
nabilwael Messages postés 62 Date d'inscription lundi 25 avril 2005 Statut Membre Dernière intervention 11 mars 2010
17 avril 2007 à 16:02
De retour,
merci les amis je vais vérifier
merci
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 avril 2007 à 16:06
Salut,
Si tu veux que lorsque tu appuies sur le bouton begin , une AUTRE image begin_im apparaisse, tu dois pour cela avoir une AUTRE contrôle image.
pour ce faire tu dois posséder un groupe de controle begin_im et end_im.
Puis a chaque fois que tu appuies sur begin tu charge un controle image de plus dans le groupe.
Exemple concret apres adaptation de ton code:
la seule chose que tu as à t'assurer, c'est que la propriété Index des controles begin_im et end_im soit à 0

Voici le code. le plus important est que tu comprennes le code donc, si tu as un souci dit le.
Option Explicit
Dim DragX As Single, DragY As Single

Private Sub begin_Click() ' command button
   'Appelle la procédure qui crée une image et la rend visible
   Call ChargeObjet(begin_im, begin_im.Count)
End Sub<hr />
Private Sub end_Click() ' command button
   'Appelle la procédure qui crée une image et la rend visible
   Call ChargeObjet(end_im, end_im.Count)
End Sub<hr />
'---------------------------------------------------------------------------------------
' Procedure : ChargeObjet
' Purpose   : Permet de charger une image appartenant a un groupe de controle image
'---------------------------------------------------------------------------------------
'
Private Sub ChargeObjet(ByRef GprObjets As Object, ByVal NumObjet As Integer)
   Call Load(GprObjets(NumObjet))
   GprObjets(NumObjet).Visible = True
End Sub<hr />
Private Sub Form_DragDrop(Source As Control, _
     X As Single, Y As Single)
  Source.Move (X - DragX), (Y - DragY)
End Sub<hr />
'permet de déplacer l'image1
Private Sub begin_im_MouseDown(index As Integer, Button As Integer, _
     Shift As Integer, X As Single, Y As Single)
  begin_im(index).Drag 1
  DragX = X
  DragY = Y
End Sub<hr />
'permet de déplacer l'image2
Private Sub end_im_MouseDown(index As Integer, Button As Integer, _
     Shift As Integer, X As Single, Y As Single)
 end_im(index).Drag 1
  DragX = X
  DragY = Y
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0

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

Posez votre question
cs_Nicko11 Messages postés 1141 Date d'inscription mercredi 7 mars 2007 Statut Membre Dernière intervention 19 septembre 2007 3
17 avril 2007 à 16:09
C'est vrai que c'est dommage car tu perds du temps a poster comme ca. Le mieux pour toi (meme si ca t'arrange pas), c'est d'apprendre par toi meme dans un premier temps. Les membres t'ont donner tellement d'informations que tu ne devrais pas avoir le temps de poster autant de fois.

Une autre chose, essaye de tester en mode debug, tu en apprendra enormement. On apprend pas en postant mais en cherchant. Si on te file un code, tu vas nous dire apres que tu ne le comprend pas et tu ne sauras pas l'adapter a ton cas. Donc, documente toi au travers de TOUT ce qui a été dis jusqu'ici.

CROIS NOUS, C'EST POUR TON BIEN.

Tu vas en plus commencer a enerver les gens et tu seras comme filtrer car on voudra plus te reponds. Post vraiment quand tu as un probleme precis et pas "J'ARRIVE PAS"

bonnne chance
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
17 avril 2007 à 16:14
Re,
En ce qui concerne les lignes verticale ou horizontale,  [auteurdetail.aspx?ID=615490 jmfmarques] , t'avais proposé un code que je pense devrais te convenir. tu devrais l'essayer, et si il ne va pas nous dire en quoi il ne va pas.
Private debx As Integer, deby As Integer

Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
  debx = X
  deby = Y
End Sub<hr />
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If Not Button = 1 Then Exit Sub
 Me.Cls
 Me.Line (debx, deby)-(X, Y)
End Sub<hr />
Private Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
 If Not Button = 1 Then Exit Sub
 Me.AutoRedraw = True
 Me.Line (debx, deby)-(X, Y)
 Me.AutoRedraw = False
End Sub , ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
Rejoignez-nous