VB6 DirListBox

cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 - 28 avril 2006 à 18:49
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 29 avril 2006 à 01:38
Salut.....

J'aimerais savoir comment on peut coder pour faire une condition quand, dans un répertoire, j'ai aucun fichier et de demander à mon DirListBox que...

If Dir1.Path =   "" Then
    Index.MousePointer = 0
End If

Je veux que si j'ai aucun fichier qui apparaît dans mon FileListBox le pointeur de ma souris se modifie en sableir et lorsuq'il apparaît de l'information dans mon FileListBox mon curseur redevient normal. Pour montrer qu'il y a une attente.
Problème
Si j'ai pas de fichier dans mon répertoire ma souris se modifie... Je ne veux pas qu'elle se modifie car l'utilisateur attends rien, il n'y a pas de fichier.

Voici mon code qui ne fonctionne pas et je ne sai splus quoi faire...

Private Sub Dir1_Change()

If File1.ListCount = 0 Then
    Index.MousePointer = 11
End If


File1.Path = Dir1.Path
  
    If Dir1.Path = "m:\Recherches_BPD\index_aux_immeubles\BPD_Montcalm\Kilkenny\INDEX_ST-CALIXTE\MONTCALM\Canton_de_Kilkenny\RANG_8" Then
        optType(2).Value = True
    End If

If Dir1.Path = "" Then
    Index.MousePointer = 0
End If


End Sub

Merci d'avance

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
28 avril 2006 à 19:45
Salut
Le FileListBox est un composant sur lequel on ne peut pas intervenir (tu parles de DirListBox, après de FileListBox ... il va falloir te décider).
Index.MousePointer ne veut rien dire (Index de quoi ? + Index est un mot réservé de VB).
Si tu veux transformer l'aspect de la souris, il te faut installer un Timer sur ta forme, régler la propriété Interval à 300 mSec par exemple, le rendre Enabled = True, et dedans, tu mettras ton code de test :
If File1.ListCount = 0 Then
   File1.MousePointer = vbHourGlass
Else
   File1.MousePointer = vbNormal
End If

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
28 avril 2006 à 20:32
ok merci beaucoup...... pour le timer.... Mais je ne crois pas que ce va m'aider

Mon FileLisBox est souvent vide et je veux modifier ma souris seulement lorsque je clique sur un optButton et que le FileListBox est entrain de "Loader" les fichiers. Bref pour indiquer à l'utilisateur qu'il faut attendre.

Hummm le Index dans mon code (je ne savais pas que c'étais un mot réservé à VB) est le nom de ma Form. J'ai pris note et je le modifirai.

Si je parle du FileListBox c'est que je veux que s'il est vide (je prédend que s'il est vide c'est qu'il est entrain de rechercher les fichiers qui se trouvent dans le répertoire que j'ai sélectionné dans mon DirListBox) alors ma souris se modifie jusqu'à ce qu'il est "Loader" les fichiers.

Le problème, si je vais dans un répertoire (je clique sur un répertoire dans mon DirListBox) et qu'il n'y a pas de fichier dans ce répertoire.... alors j'ai un problème. Ma souris va se modifier car mon FileListBox est vide....

C'est pourquoi j'ai rajouter cette ligne de code (je sais que c'est pas bon)

If Dir1.Path = "" Then
    Index.MousePointer = 0
End

Mais ce que je veux dire ou essayer de coder c'est que si mon répertoire ne contient aucun fichier alors je ne veux pas modifier la souris...

Si ce n'est pas assez clair, fais moi signe j'essairai de le dire en d'autres mots pour tenter d'être plus clair ....

Merci de ton aide 
0
cs_JeffC1977 Messages postés 928 Date d'inscription vendredi 10 novembre 2000 Statut Membre Dernière intervention 23 septembre 2023 4
28 avril 2006 à 21:34
Rebonjour...

Bref... Comment je peux coder cette fonction

If File1.ListCount = 0 Then
    Index.MousePointer = 11
End If

Mais avec ces conditions:

Si mon FileListBox est vide et quand dans ce répertoire j'ai aucun fichier alors
File1.MousePointer = vbNormal
Si mon FileListBox est vide (J'ai des fichiers dans ce répertoire mais ils ne sont pas encore apparut) alors
File1.MousePointer = vbHourGlass

Merci d'avance
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 avril 2006 à 01:38
Aucune idée
Comme déjà dit, le composant FileListBox ne donne pas d'info sur son degré d'occupation.

Le Timer peut quand même être utiliser avec un TimeOut :
Dans la partie déclaration de ta forme, tu ajoutes
Private Compteur As Long

Dans le code du Timer, tu ajoutes
Compteur = Compteur + 1
' 10 fois 500mSec = 5 Sec : Au bout de 5 secondes, le curseur redeviendra normal
If Compteur > 10 Then
   File1.MousePointer = vbNormal
ElseIf File1.ListCount = 0 Then
   File1.MousePointer = vbHourGlass
Else
   File1.MousePointer = vbNormal
End If

Et il faudra penser à remettre à zéro le compteur quand tu changes de répertoire :
Dans Dir1_Change :
Compteur = 0

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Champion du monde de boule de cristal - 2005
Le savoir est la seule matière qui s'accro
0
Rejoignez-nous