Petit probleme avec un Form_MouseMove et systray

Mecmec Messages postés 50 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 9 octobre 2008 - 18 sept. 2008 à 19:46
Mecmec Messages postés 50 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 9 octobre 2008 - 19 sept. 2008 à 15:24
Bonjour,

je commence par montré le script:

'Ces deux procédures permettent le déplacement de la form :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
x0 = X
y0 = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
          
               'on interception des événements sur l'icône du systray
Select Case X
   Case &H202 To &H203
      me.Show
        Call oSystray.DeleteIcon
       Let dksSystrayButton1.Visible = False
   End Select
   
   
If (Button = vbLeftButton) Then
  
    Me.Left = Me.Left + (X - x0)
    Me.Top = Me.Top + (Y - y0)
    DoEvents
End If
End Sub

donc en gros, il y a un probleme avec ceci: 

               'on interception des événements sur l'icône du systray
Select Case X
   Case &H202 To &H203
      me.Show
        Call oSystray.DeleteIcon
       Let dksSystrayButton1.Visible = False
   End Select

car quand on clique sur le systray sa ouvre la fenetre

mais sa l'ouvre pas sa bloque a cause de se script:

If (Button = vbLeftButton) Then
  
    Me.Left = Me.Left + (X - x0)
    Me.Top = Me.Top + (Y - y0)
    DoEvents
End If
End Sub

comment il faudrais faire  , car en gros les deux script sont surement executé quand on clique sur le systray et donc sa fait un bug,   car c'est parce que il execute les deux scripts,

comment il faudrais faire avec par exemple un if ... ou autre pour que le if soit executé quand la fenetre est en cours de marche, et le systray seulement quand on clique sur le systray ?

Merci d'avance

(ps: les deux scripts font contact , c'est surement ceci qui déconne)

2 réponses

Mecmec Messages postés 50 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 9 octobre 2008
18 sept. 2008 à 19:52
je re-precise mieux:

'Ces deux procédures permettent le déplacement de la form :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
x0 = X
y0 = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
          
               'on interception des événements sur l'icône du systray
Select Case X
   Case &H202 To &H203
      me.Show
        Call oSystray.DeleteIcon
       Let dksSystrayButton1.Visible = False
   End Select
   
   
If (Button = vbLeftButton) Then
  
    Me.Left = Me.Left + (X - x0)
    Me.Top = Me.Top + (Y - y0)
    DoEvents
End If
End Sub

quand je mets le script là sa ne marche pas, sa fait contact ... donc un bug

mais si je met le script là sa marche impec:

'Ces deux procédures permettent le déplacement de la form :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
x0 = X
y0 = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
          
               'on interception des événements sur l'icône du systray
Select Case X
   Case &H202 To &H203
      me.Show
        Call oSystray.DeleteIcon
       Let dksSystrayButton1.Visible = False
   End Select
   
End Sub

sa marche aussi si le script est inversé:

'Ces deux procédures permettent le déplacement de la form :
Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
x0 = X
y0 = Y
End Sub
Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
           
   
If (Button = vbLeftButton) Then
  
    Me.Left = Me.Left + (X - x0)
    Me.Top = Me.Top + (Y - y0)
    DoEvents
End If
End Sub

mais quand je mets tout sa ne marche pas, probleme  quand je clique sur le systray sa execute surement en meme temps le premier script

C'est un script de systray  qui redeviens une form avec un déplaceur de form
0
Mecmec Messages postés 50 Date d'inscription samedi 11 novembre 2000 Statut Membre Dernière intervention 9 octobre 2008
19 sept. 2008 à 15:24
c'est bon c'est reglé avec une image transparente (image8) au lieu de (form):

Private Sub Image8_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
x0 = X
y0 = Y
End Sub


Private Sub Image8_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
If (Button = vbLeftButton) Then
  
    Me.Left = Me.Left + (X - x0)
    Me.Top = Me.Top + (Y - y0)
    DoEvents
End If
End Sub
0
Rejoignez-nous