Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Mise à jour d'une FileListBox

19 réponses
Avatar
L'AMI Yves
Bonjour à tous.

Je suis en train de développer une application formidable : tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox. Pour être
complet, j'ai aussi une TextBox où je peux rentrer un "Pattern". Je suis
sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien que mon
application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour la liste
des fichiers autrement qu'en fermant et rouvrant mon application DEUX FOIS
!!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5 Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour tenir sa
liste à jour...

AMIcalement

9 réponses

1 2
Avatar
L'AMI Yves
Écoute, Troll, tu es vraiment très gentil, et je prendrai certainement
un jour le temps de tester ce programme, mais, vois-tu, je ne suis
pas du tout d'accord avec ta philosophie sur les forums. Contrairement
à ce que tu affirmes, je maintiens que l'ergonomie du programme que
j'ai décris n'est pas si nulle, et en tout cas, elle colle à ce que moi,
j'attends du programme que j'ai fait pour moi : le but premier est
de pouvoir choisir, aussi facilement que possible, quel fichier .wav
je vais écouter. Pour ta gouverne, il ne s'agit pas du tut de chansons,
mais de "mémos" saisis en situation, et que je transcris dans un autre
programme : dans ce cas, je n'ai besoin que de la liste, et le simple clic
est "encore plus" confortable que le double. S'il faut en supprimer un
de temps en temps, c'est un "plus" exceptionnel.
Et le fait de passer le nom du fichier à "ShellExecute" permettra
demain d'utiliser le même programme avec des vidéos, ou des .txt
ou n'importe quoi d'autre.
La seule chose que je demandais, c'était que la liste se mette à jour.
La solution que tu proposes est de supprimer le cache en écriture sur
le disque. Ça aussi, je le testerai, mais c'est de toute façon une mauvaise
solution. Ne le prends pas mal, mais je trouve que c'est une solution
"typique Microsoft" : on a un tout petit besoin dans un coin, alors on
bouleverse toute la configuration. Et si un jour quelqu'un d'autre à
vraiment besoin du cache, il le remettra, et on ne comprendra pas
pourquoi mon programme ne marche plus.
Moi aussi, j'ai beaucoup développé de programmes, je suis loin de
tout savoir, mais je ne suis pas ignare...

Enfin, merci de toute la peine que tu as prise.

AMIcalement.
"LE TROLL" <le a écrit dans le message de news:

Tiens, voici le code total de ce que tu veux faire, y a plus qu'à
faire le menu selon les indications, mettre les objets prévus (c'est
indiqué), copier le code et lancer (avec des fichiers Wav), ce qui est un
format trop volumineux si c'est une cnanson, soit dit en passant...




' OBJETS = form1 + drive1 + dir1 + file1 = 4
'
' MENU : configuration
' - menu1, affichage = vide, nom = m_popup, état = invisible
' - ... sous-menu1, affichage = "Ecouter", nom = "m_ecoute"
' - ... sous-menu2, affichage = "Arrêter", nom = "m_stop"
' - ... sous-menu3, affichage = "Supprimer le fichier", nom = "m_sup"
' - ... sous-menu4, affichage = "-", nom = "m_tiret"
' - ... sous-menu5, affichage = "Abandonner", nom = "m_abandonner"
'
Option Explicit
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As
Long) As Long
Private Const SND_ASYNC = &H1
Dim Ras As Boolean
Dim ch As String
'

Sub Form_Load()
ChDrive App.Path
ChDir App.Path
Dir1 = App.Path
Form1.Caption = " Gestionnaire de fichier son"
Ras = False
End Sub

Sub Drive1_Change()
On Error Resume Next
Dir1.Path = Drive1.Drive
End Sub

Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Sub File1_DblClick()
ch = Dir1 & "" & File1
PopupMenu m_popup ' m_ecoute + m_stop + m_sup
End Sub

Sub m_ecoute_Click()
Call verif
If Ras = False Then
Ras = Not Ras
Exit Sub
End If
MsgBox "Pour arrêter : doublecliquer sur le nom du fichier ",
vbInformation
PlaySound ch, ByVal 0&, SND_ASYNC
End Sub

Sub verif()
Dim inv As String
inv = StrReverse(ch)
Ras = True
If Len(ch) < 8 Then
MsgBox "Fichier non conforme ", vbExclamation ' c:x.wav = 8
Ras = False
Exit Sub
End If
If Mid(inv, 1, 4) <> "vaw." Then
MsgBox "Ce fichier n'est pas un fichier ""WAV"" ", vbExclamation
Ras = False
Exit Sub
End If
End Sub

Sub m_stop_Click()
PlaySound 0, ByVal 0&, SND_ASYNC
End Sub

Sub m_sup_Click()
Dim r As String
r = MsgBox("Supprimer ce ficher " & vbLf & File1, vbQuestion + vbYesNo
+ vbDefaultButton2)
If r <> vbYes Then Exit Sub
Call verif
If Ras = False Then
Ras = Not Ras
Exit Sub
End If
Call m_stop_Click
Kill ch
Call Drive1_Change
Call Dir1_Change
File1.Refresh
End Sub

Sub Form_Unload(Cancel As Integer)
PlaySound 0, ByVal 0&, SND_ASYNC
End Sub



Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message de
news:OvK$
Je ne comprends pas si tes deux posts sont les mêmes : disons que oui.
Qu'appelles-tu RAB ? "Remise A Blanc" ?
Justement, le cache en écriture fait que deux actions successives
semblables ne donnent pas le même résultat. Tu sauras si ton disque
a le cache en écriture activé en faisant "Clic-droit Poste de
travail/Gérer/
Gestion des disques", puis, dans la case de gauche, où est décrit le
disque
physique où réside le répertoire (voire la partition) sur laquelle on
travaille, "Clic-droit/Propriété/Stratégie" ...OUF ! Là tu trouveras une
case
à cocher "Activer le cache d'écriture sur le disque".

Il y a certainement une API pour forcer l'écriture du cache, ou pour
forcer une lecture physique lors du second accès, mais je ne la connais
pas, c'est pourquoi je m'adresse à ce forum.

Pourquoi trouves-tu ma méthode bizarre ? Et d'ailleurs, que connais-tu
de ma méthode : je n'ai pas montré mon source ?

En fait, en l'occurrence, je liste un répertoire contenant un grand
nombre
de petits fichiers ".wav". En cliquant, je fais "jouer" le fichier (en
le passant
à l'API "ShellExecute"), et j'ai ensuite "compliqué" mon application en
la
dotant d'une facilité pour supprimer les fichiers sans intérêt. Comme le
clic est déjà pris, j'utilise "Suppr" : je fais un "KeyUp" et je teste
"VbDelete":
ça me parait tout à fait limpide, non ?

Toi, tu me dis que chez toi, ça marche, c'est à dire que si tu supprimes
un
fichier dans la fenêtre "FileListBox", la liste des fichiers se met bien
à jour ?

"LE TROLL" <le a écrit dans le message de news:

Bonsoir,

Affirmatif, c'est testé sur mon disque, j'ai tenté de reproduire ton
modèle (hors la touche <del>), et en fait le RAB se produit quand on
fait de
nouveau appel à dir, drive... Ce qui peut a posteriori sembler normal,
puisque la première fois où ça se lance ça affiche bien le contenu,
alors en
le rappelant ça devrait faire la même chose.

Je ne sais pas ce que c'est que la cache en écriture, cacher quoi,
quelle écriture ? Il n'y a qu'un clique pour tout écriture venant du
clavier
(me concernant), peut être que je connais le "cache en écriture" sous
un
autre nom ?

Ce que tu peux déjà faire, c'est prendre une feuille vierge, d'un
programme vierge, mettre drive, dir, list1 en objet, puis copier le
code et
lancer, car peut être que certains paramètres modifiés par toi
interdisent
un déroulement tel qu'il fonctionne chez moi ? Vb5 e, ou vb6, c'est
quasiment la même chose, j'ai eu vb5 i, puis vb6 i et p, c'est quasi la
même
chose, sauf que le p à accès à davantage d'objets en option, bof...

J'ai fait ça pour ton <del>, mais ça ne change rien, chat marche, à
condition quand même de valider le bon élément dans la liste :

Sub File1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim aSupprimer As String
Dim r As String
aSupprimer = Dir1 & "" & File1
If KeyCode = 46 Then
r = MsgBox("Supprimer ce ficher " & vbLf & File1, vbQuestion +
vbYesNo
+ vbDefaultButton2)
If r <> vbYes Then Exit Sub
Kill aSupprimer
Call Drive1_Change
Call Dir1_Change
End If
End Sub


Heu, bizarre ta méthode, déjà de recopier la list1 dans une liste,
puis
qu'il faille cliquer à la souris, puis lâcher la souris pour aller
faire
<del>, sauf à croiser les mains comme au piano, moi j'aurais mis un
popup
(menu surgissant sur double clique), qui proposerait toute la
batterie...


Tant qu'à faire, ici, je mettrais un popup menu sur clic-droit. J'ai
pensé à ça
un moment, mais il faut transformer la coordonnée X dans la fenêtre, en
index dans la liste des fichiers : j'ai été dégoût d'avance. De toute
façon, ça
n'aurait rien changé au problème de mise à jour de la liste, il me
semble.

Je vais tenter de passer le code sur le forum, peut être que ça va
marcher, et peut être que vb5 acceptera ?

A te lire, cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message
de
news:

"LE TROLL" <le a écrit dans le message de news:

' OBJETS = form1 + drive1 + dir1 + file1 = 4
Option Explicit
'

Sub Form_Load()
ChDrive App.Path
ChDir App.Path
Dir1 = App.Path
End Sub

Sub Drive1_Change()
On Error Resume Next
Dir1.Path = Drive1.Drive
End Sub

Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Sub File1_Click()
Dim aSupprimer As String
Dim r As String
aSupprimer = Dir1 & "" & File1
r = MsgBox("Supprimer ce ficher " & vbLf & File1, vbQuestion +
vbYesNo
+ vbDefaultButton2)
If r <> vbYes Then Exit Sub
Kill aSupprimer
Call Drive1_Change
Call Dir1_Change
End Sub



As-tu testé ton programme avec un disque où le cache en écriture est
activé ?
Je demande ça, par ce que chez moi, l'ajout des appels à
Drive1_Change et
Dir1_Change ne ... change rien du tout.

AMIcalement.



--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message
de
news:%
Bonjour à tous.

Je suis en train de développer une application formidable :
tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox.
Pour
être complet, j'ai aussi une TextBox où je peux rentrer un
"Pattern". Je
suis sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec
les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien
que
mon application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour
la
liste des fichiers autrement qu'en fermant et rouvrant mon
application
DEUX FOIS !!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5
Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour
tenir
sa liste à jour...

AMIcalement


















Avatar
at
L'AMI Yves a pensé très fort :
Bonjour à tous.

Je suis en train de développer une application formidable : tenez-vous bien.
J'ai une DriveListBox, une DirListBox et une FileListBox. Pour être complet,
j'ai aussi une TextBox où je peux rentrer un "Pattern". Je suis sûr que vous
ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien que mon
application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour la liste
des fichiers autrement qu'en fermant et rouvrant mon application DEUX FOIS
!!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5 Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour tenir sa
liste à jour...

AMIcalement



Je viens de tester avec VB6 sous XP avec le cache disque activé.
Résultat aucun problème, une fois le fichier supprimé un refresh sur
"file" montre bien la mise à jour.

*Essaye de créer une collection sur file et de charger et décharger
l'objet pour voir si la mise à jour est prise en compte.

Je me souviens avoir eu ce problème avec drivelistbox qui même avec un
refresh ne prenait pas en compte l'ajout d'un disque USB et la seule
solution était de fermer et de ré-ouvrir l'application. Aujourd'hui ça
marche, mais je n'ai pas l'explication au problème précédemment posé.
Avatar
LE TROLL
Bonjour at,

Le cache disque n'interdit rien a priori, il diffère juste.

En rappelant dir et drive la liste se remet à jour.

Mais ça ne marche pas chez lui ?

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"at" a écrit dans le message de
news:4bb47274$0$15831$
L'AMI Yves a pensé très fort :
Bonjour à tous.

Je suis en train de développer une application formidable : tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox. Pour être
complet, j'ai aussi une TextBox où je peux rentrer un "Pattern". Je suis
sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien que
mon application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour la
liste des fichiers autrement qu'en fermant et rouvrant mon application
DEUX FOIS !!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5 Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour tenir
sa liste à jour...

AMIcalement



Je viens de tester avec VB6 sous XP avec le cache disque activé. Résultat
aucun problème, une fois le fichier supprimé un refresh sur "file" montre
bien la mise à jour.

*Essaye de créer une collection sur file et de charger et décharger
l'objet pour voir si la mise à jour est prise en compte.

Je me souviens avoir eu ce problème avec drivelistbox qui même avec un
refresh ne prenait pas en compte l'ajout d'un disque USB et la seule
solution était de fermer et de ré-ouvrir l'application. Aujourd'hui ça
marche, mais je n'ai pas l'explication au problème précédemment posé.


Avatar
LE TROLL
Suite, je ne crois pas que le cache-disque cause un
dysfonctionnement, il diffère, de combien, je ne sais, ce doit être
variable, il y a peut être autre chose qui fait que ça ne fonctionne pas,
manifestement a priori, mais pour le savoir il faut bien voir si (à toutes
fins) ce serait le cache...

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message de
news:
Écoute, Troll, tu es vraiment très gentil, et je prendrai certainement
un jour le temps de tester ce programme, mais, vois-tu, je ne suis
pas du tout d'accord avec ta philosophie sur les forums. Contrairement
à ce que tu affirmes, je maintiens que l'ergonomie du programme que
j'ai décris n'est pas si nulle, et en tout cas, elle colle à ce que moi,
j'attends du programme que j'ai fait pour moi : le but premier est
de pouvoir choisir, aussi facilement que possible, quel fichier .wav
je vais écouter. Pour ta gouverne, il ne s'agit pas du tut de chansons,
mais de "mémos" saisis en situation, et que je transcris dans un autre
programme : dans ce cas, je n'ai besoin que de la liste, et le simple clic
est "encore plus" confortable que le double. S'il faut en supprimer un
de temps en temps, c'est un "plus" exceptionnel.
Et le fait de passer le nom du fichier à "ShellExecute" permettra
demain d'utiliser le même programme avec des vidéos, ou des .txt
ou n'importe quoi d'autre.
La seule chose que je demandais, c'était que la liste se mette à jour.
La solution que tu proposes est de supprimer le cache en écriture sur
le disque. Ça aussi, je le testerai, mais c'est de toute façon une
mauvaise
solution. Ne le prends pas mal, mais je trouve que c'est une solution
"typique Microsoft" : on a un tout petit besoin dans un coin, alors on
bouleverse toute la configuration. Et si un jour quelqu'un d'autre à
vraiment besoin du cache, il le remettra, et on ne comprendra pas
pourquoi mon programme ne marche plus.
Moi aussi, j'ai beaucoup développé de programmes, je suis loin de
tout savoir, mais je ne suis pas ignare...

Enfin, merci de toute la peine que tu as prise.

AMIcalement.
"LE TROLL" <le a écrit dans le message de news:

Tiens, voici le code total de ce que tu veux faire, y a plus qu'à
faire le menu selon les indications, mettre les objets prévus (c'est
indiqué), copier le code et lancer (avec des fichiers Wav), ce qui est un
format trop volumineux si c'est une cnanson, soit dit en passant...




' OBJETS = form1 + drive1 + dir1 + file1 = 4
'
' MENU : configuration
' - menu1, affichage = vide, nom = m_popup, état = invisible
' - ... sous-menu1, affichage = "Ecouter", nom = "m_ecoute"
' - ... sous-menu2, affichage = "Arrêter", nom = "m_stop"
' - ... sous-menu3, affichage = "Supprimer le fichier", nom = "m_sup"
' - ... sous-menu4, affichage = "-", nom = "m_tiret"
' - ... sous-menu5, affichage = "Abandonner", nom = "m_abandonner"
'
Option Explicit
Private Declare Function PlaySound Lib "winmm.dll" Alias "PlaySoundA" _
(ByVal lpszName As String, ByVal hModule As Long, ByVal dwFlags As
Long) As Long
Private Const SND_ASYNC = &H1
Dim Ras As Boolean
Dim ch As String
'

Sub Form_Load()
ChDrive App.Path
ChDir App.Path
Dir1 = App.Path
Form1.Caption = " Gestionnaire de fichier son"
Ras = False
End Sub

Sub Drive1_Change()
On Error Resume Next
Dir1.Path = Drive1.Drive
End Sub

Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Sub File1_DblClick()
ch = Dir1 & "" & File1
PopupMenu m_popup ' m_ecoute + m_stop + m_sup
End Sub

Sub m_ecoute_Click()
Call verif
If Ras = False Then
Ras = Not Ras
Exit Sub
End If
MsgBox "Pour arrêter : doublecliquer sur le nom du fichier ",
vbInformation
PlaySound ch, ByVal 0&, SND_ASYNC
End Sub

Sub verif()
Dim inv As String
inv = StrReverse(ch)
Ras = True
If Len(ch) < 8 Then
MsgBox "Fichier non conforme ", vbExclamation ' c:x.wav = 8
Ras = False
Exit Sub
End If
If Mid(inv, 1, 4) <> "vaw." Then
MsgBox "Ce fichier n'est pas un fichier ""WAV"" ", vbExclamation
Ras = False
Exit Sub
End If
End Sub

Sub m_stop_Click()
PlaySound 0, ByVal 0&, SND_ASYNC
End Sub

Sub m_sup_Click()
Dim r As String
r = MsgBox("Supprimer ce ficher " & vbLf & File1, vbQuestion + vbYesNo
+ vbDefaultButton2)
If r <> vbYes Then Exit Sub
Call verif
If Ras = False Then
Ras = Not Ras
Exit Sub
End If
Call m_stop_Click
Kill ch
Call Drive1_Change
Call Dir1_Change
File1.Refresh
End Sub

Sub Form_Unload(Cancel As Integer)
PlaySound 0, ByVal 0&, SND_ASYNC
End Sub



Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message de
news:OvK$
Je ne comprends pas si tes deux posts sont les mêmes : disons que oui.
Qu'appelles-tu RAB ? "Remise A Blanc" ?
Justement, le cache en écriture fait que deux actions successives
semblables ne donnent pas le même résultat. Tu sauras si ton disque
a le cache en écriture activé en faisant "Clic-droit Poste de
travail/Gérer/
Gestion des disques", puis, dans la case de gauche, où est décrit le
disque
physique où réside le répertoire (voire la partition) sur laquelle on
travaille, "Clic-droit/Propriété/Stratégie" ...OUF ! Là tu trouveras une
case
à cocher "Activer le cache d'écriture sur le disque".

Il y a certainement une API pour forcer l'écriture du cache, ou pour
forcer une lecture physique lors du second accès, mais je ne la connais
pas, c'est pourquoi je m'adresse à ce forum.

Pourquoi trouves-tu ma méthode bizarre ? Et d'ailleurs, que connais-tu
de ma méthode : je n'ai pas montré mon source ?

En fait, en l'occurrence, je liste un répertoire contenant un grand
nombre
de petits fichiers ".wav". En cliquant, je fais "jouer" le fichier (en
le passant
à l'API "ShellExecute"), et j'ai ensuite "compliqué" mon application en
la
dotant d'une facilité pour supprimer les fichiers sans intérêt. Comme le
clic est déjà pris, j'utilise "Suppr" : je fais un "KeyUp" et je teste
"VbDelete":
ça me parait tout à fait limpide, non ?

Toi, tu me dis que chez toi, ça marche, c'est à dire que si tu supprimes
un
fichier dans la fenêtre "FileListBox", la liste des fichiers se met bien
à jour ?

"LE TROLL" <le a écrit dans le message de news:

Bonsoir,

Affirmatif, c'est testé sur mon disque, j'ai tenté de reproduire ton
modèle (hors la touche <del>), et en fait le RAB se produit quand on
fait de
nouveau appel à dir, drive... Ce qui peut a posteriori sembler normal,
puisque la première fois où ça se lance ça affiche bien le contenu,
alors en
le rappelant ça devrait faire la même chose.

Je ne sais pas ce que c'est que la cache en écriture, cacher quoi,
quelle écriture ? Il n'y a qu'un clique pour tout écriture venant du
clavier
(me concernant), peut être que je connais le "cache en écriture" sous
un
autre nom ?

Ce que tu peux déjà faire, c'est prendre une feuille vierge, d'un
programme vierge, mettre drive, dir, list1 en objet, puis copier le
code et
lancer, car peut être que certains paramètres modifiés par toi
interdisent
un déroulement tel qu'il fonctionne chez moi ? Vb5 e, ou vb6, c'est
quasiment la même chose, j'ai eu vb5 i, puis vb6 i et p, c'est quasi la
même
chose, sauf que le p à accès à davantage d'objets en option, bof...

J'ai fait ça pour ton <del>, mais ça ne change rien, chat marche, à
condition quand même de valider le bon élément dans la liste :

Sub File1_KeyDown(KeyCode As Integer, Shift As Integer)
Dim aSupprimer As String
Dim r As String
aSupprimer = Dir1 & "" & File1
If KeyCode = 46 Then
r = MsgBox("Supprimer ce ficher " & vbLf & File1, vbQuestion +
vbYesNo
+ vbDefaultButton2)
If r <> vbYes Then Exit Sub
Kill aSupprimer
Call Drive1_Change
Call Dir1_Change
End If
End Sub


Heu, bizarre ta méthode, déjà de recopier la list1 dans une liste,
puis
qu'il faille cliquer à la souris, puis lâcher la souris pour aller
faire
<del>, sauf à croiser les mains comme au piano, moi j'aurais mis un
popup
(menu surgissant sur double clique), qui proposerait toute la
batterie...


Tant qu'à faire, ici, je mettrais un popup menu sur clic-droit. J'ai
pensé à ça
un moment, mais il faut transformer la coordonnée X dans la fenêtre, en
index dans la liste des fichiers : j'ai été dégoût d'avance. De toute
façon, ça
n'aurait rien changé au problème de mise à jour de la liste, il me
semble.

Je vais tenter de passer le code sur le forum, peut être que ça va
marcher, et peut être que vb5 acceptera ?

A te lire, cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message
de
news:

"LE TROLL" <le a écrit dans le message de news:

' OBJETS = form1 + drive1 + dir1 + file1 = 4
Option Explicit
'

Sub Form_Load()
ChDrive App.Path
ChDir App.Path
Dir1 = App.Path
End Sub

Sub Drive1_Change()
On Error Resume Next
Dir1.Path = Drive1.Drive
End Sub

Sub Dir1_Change()
File1.Path = Dir1.Path
End Sub

Sub File1_Click()
Dim aSupprimer As String
Dim r As String
aSupprimer = Dir1 & "" & File1
r = MsgBox("Supprimer ce ficher " & vbLf & File1, vbQuestion +
vbYesNo
+ vbDefaultButton2)
If r <> vbYes Then Exit Sub
Kill aSupprimer
Call Drive1_Change
Call Dir1_Change
End Sub



As-tu testé ton programme avec un disque où le cache en écriture est
activé ?
Je demande ça, par ce que chez moi, l'ajout des appels à
Drive1_Change et
Dir1_Change ne ... change rien du tout.

AMIcalement.



--
Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message
de
news:%
Bonjour à tous.

Je suis en train de développer une application formidable :
tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox.
Pour
être complet, j'ai aussi une TextBox où je peux rentrer un
"Pattern". Je
suis sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec
les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien
que
mon application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour
la
liste des fichiers autrement qu'en fermant et rouvrant mon
application
DEUX FOIS !!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5
Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour
tenir
sa liste à jour...

AMIcalement





















Avatar
L'AMI Yves
"at" a écrit dans le message de news:
4bb47274$0$15831$
L'AMI Yves a pensé très fort :
Bonjour à tous.

Je suis en train de développer une application formidable : tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox. Pour
être complet, j'ai aussi une TextBox où je peux rentrer un "Pattern". Je
suis sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien que
mon application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour la
liste des fichiers autrement qu'en fermant et rouvrant mon application
DEUX FOIS !!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5 Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour tenir
sa liste à jour...

AMIcalement



Je viens de tester avec VB6 sous XP avec le cache disque activé. Résultat
aucun problème, une fois le fichier supprimé un refresh sur "file" montre
bien la mise à jour.

*Essaye de créer une collection sur file et de charger et décharger
l'objet pour voir si la mise à jour est prise en compte.

Je me souviens avoir eu ce problème avec drivelistbox qui même avec un
refresh ne prenait pas en compte l'ajout d'un disque USB et la seule
solution était de fermer et de ré-ouvrir l'application. Aujourd'hui ça
marche, mais je n'ai pas l'explication au problème précédemment posé.


Alors je suis peut être dans un cas de ce genre. Par acquit de conscience,
'ai essayé en désactivant le cache : c'est pareil. J'ai essayé aussi de
mettre
dans une boucle répétée 1000 fois le Fiel1.refresh suivi d'un DoEvents :
ça fait un truc drôle sur la FileListBox, mais c'est toujours pareil.
C'est ce qui me tue vraiment dans les développements sous Windows :
tu fais bien ce que dit la doc, et pourtant, ça marche pas (et sans expli-
cation). Jadis je faisais des développements sur IBM : c'était pas évident
de trouver la doc, mais tout était dans la doc, et ça marchait comme dit
dans la doc !!!!!

Avatar
LE TROLL
Ah ben,

Moi ça fonctionne Vista 32, chez At (xp) aussi avec son code je
présume, alors faut aussi envisager de mettre juste le code concerné dans un
programme neuf, histoire de voir.

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message de
news:

"at" a écrit dans le message de news:
4bb47274$0$15831$
L'AMI Yves a pensé très fort :
Bonjour à tous.

Je suis en train de développer une application formidable : tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox. Pour
être complet, j'ai aussi une TextBox où je peux rentrer un "Pattern". Je
suis sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien que
mon application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour la
liste des fichiers autrement qu'en fermant et rouvrant mon application
DEUX FOIS !!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5 Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour tenir
sa liste à jour...

AMIcalement



Je viens de tester avec VB6 sous XP avec le cache disque activé. Résultat
aucun problème, une fois le fichier supprimé un refresh sur "file" montre
bien la mise à jour.

*Essaye de créer une collection sur file et de charger et décharger
l'objet pour voir si la mise à jour est prise en compte.

Je me souviens avoir eu ce problème avec drivelistbox qui même avec un
refresh ne prenait pas en compte l'ajout d'un disque USB et la seule
solution était de fermer et de ré-ouvrir l'application. Aujourd'hui ça
marche, mais je n'ai pas l'explication au problème précédemment posé.


Alors je suis peut être dans un cas de ce genre. Par acquit de conscience,
'ai essayé en désactivant le cache : c'est pareil. J'ai essayé aussi de
mettre
dans une boucle répétée 1000 fois le Fiel1.refresh suivi d'un DoEvents :
ça fait un truc drôle sur la FileListBox, mais c'est toujours pareil.
C'est ce qui me tue vraiment dans les développements sous Windows :
tu fais bien ce que dit la doc, et pourtant, ça marche pas (et sans expli-
cation). Jadis je faisais des développements sur IBM : c'était pas évident
de trouver la doc, mais tout était dans la doc, et ça marchait comme dit
dans la doc !!!!!





Avatar
L'AMI Yves
J'ai compris le message. Mais si je comprends bien tes sous-entendus, il
faut
envisager que mon paramétrage par défaut de VB 5 provoque cette bizarrerie.
Le problème, c'est que même si j'ouvre un nouveau projet, ce sera toujours
avec mon paramétrage par défaut, non ?
Je vais essayer de porter l'exe généré sur d'autres PC, pour voir. La
galère,
c'est qu'il faudra aussi porter les .wav !!!
A+
"LE TROLL" <le a écrit dans le message de news:

Ah ben,

Moi ça fonctionne Vista 32, chez At (xp) aussi avec son code je
présume, alors faut aussi envisager de mettre juste le code concerné dans
un programme neuf, histoire de voir.

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message de
news:

"at" a écrit dans le message de news:
4bb47274$0$15831$
L'AMI Yves a pensé très fort :
Bonjour à tous.

Je suis en train de développer une application formidable : tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox. Pour
être complet, j'ai aussi une TextBox où je peux rentrer un "Pattern".
Je suis sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien que
mon application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour la
liste des fichiers autrement qu'en fermant et rouvrant mon application
DEUX FOIS !!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5 Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour
tenir sa liste à jour...

AMIcalement



Je viens de tester avec VB6 sous XP avec le cache disque activé.
Résultat aucun problème, une fois le fichier supprimé un refresh sur
"file" montre bien la mise à jour.

*Essaye de créer une collection sur file et de charger et décharger
l'objet pour voir si la mise à jour est prise en compte.

Je me souviens avoir eu ce problème avec drivelistbox qui même avec un
refresh ne prenait pas en compte l'ajout d'un disque USB et la seule
solution était de fermer et de ré-ouvrir l'application. Aujourd'hui ça
marche, mais je n'ai pas l'explication au problème précédemment posé.


Alors je suis peut être dans un cas de ce genre. Par acquit de
conscience,
'ai essayé en désactivant le cache : c'est pareil. J'ai essayé aussi de
mettre
dans une boucle répétée 1000 fois le Fiel1.refresh suivi d'un DoEvents :
ça fait un truc drôle sur la FileListBox, mais c'est toujours pareil.
C'est ce qui me tue vraiment dans les développements sous Windows :
tu fais bien ce que dit la doc, et pourtant, ça marche pas (et sans
expli-
cation). Jadis je faisais des développements sur IBM : c'était pas
évident
de trouver la doc, mais tout était dans la doc, et ça marchait comme dit
dans la doc !!!!!








Avatar
LE TROLL
Bonjour,

Les paramètres par défaut à la rigueur, non, moi je pense plutôt à du
code ou à une propriété autre, qui viendrait parasiter le bon déroulement.
Tu as "At" tu peux lui demander son code, et tu as le mien, même si ce n'est
pas ce que tu veux, séparément chez nous ça marche, à partir de là, prenant
un programme vierge, de coller ce code, d'y coller les objets sans rien
toucher, à y mettre quelques fichier wav avec le vbp, puis d'essayer, si ça
ne fonctionne pas à ce stade par exemple, ça élimine déjà la possibilité que
ton code au total puisse être concerné, etc.

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message de
news:
J'ai compris le message. Mais si je comprends bien tes sous-entendus, il
faut
envisager que mon paramétrage par défaut de VB 5 provoque cette
bizarrerie.
Le problème, c'est que même si j'ouvre un nouveau projet, ce sera toujours
avec mon paramétrage par défaut, non ?
Je vais essayer de porter l'exe généré sur d'autres PC, pour voir. La
galère,
c'est qu'il faudra aussi porter les .wav !!!
A+
"LE TROLL" <le a écrit dans le message de news:

Ah ben,

Moi ça fonctionne Vista 32, chez At (xp) aussi avec son code je
présume, alors faut aussi envisager de mettre juste le code concerné dans
un programme neuf, histoire de voir.

Cordialement ;o)
-
Logiciels, romans, contacts : http://irolog.free.fr
_______________________
.
.


"L'AMI Yves" a écrit dans le message de
news:

"at" a écrit dans le message de news:
4bb47274$0$15831$
L'AMI Yves a pensé très fort :
Bonjour à tous.

Je suis en train de développer une application formidable : tenez-vous
bien. J'ai une DriveListBox, une DirListBox et une FileListBox. Pour
être complet, j'ai aussi une TextBox où je peux rentrer un "Pattern".
Je suis sûr que vous ne voyez pas où je veux en venir...

Dans la routine File_KeyUp, je détecte la touche "Suppr", et, avec les
précautions d'usage, je "Kill" le fichier désigné. Vous voyez bien que
mon application est formidable !

Mais il s'avère que je suis absolument incapable de mettre à jour la
liste des fichiers autrement qu'en fermant et rouvrant mon application
DEUX FOIS !!!!!!!!!

Je précise que je fais ça avec mon très antédiluvien VB 5 Initiation.

Alors merci à ceux qui pourront me dire comment fait Explorer pour
tenir sa liste à jour...

AMIcalement



Je viens de tester avec VB6 sous XP avec le cache disque activé.
Résultat aucun problème, une fois le fichier supprimé un refresh sur
"file" montre bien la mise à jour.

*Essaye de créer une collection sur file et de charger et décharger
l'objet pour voir si la mise à jour est prise en compte.

Je me souviens avoir eu ce problème avec drivelistbox qui même avec un
refresh ne prenait pas en compte l'ajout d'un disque USB et la seule
solution était de fermer et de ré-ouvrir l'application. Aujourd'hui ça
marche, mais je n'ai pas l'explication au problème précédemment posé.


Alors je suis peut être dans un cas de ce genre. Par acquit de
conscience,
'ai essayé en désactivant le cache : c'est pareil. J'ai essayé aussi de
mettre
dans une boucle répétée 1000 fois le Fiel1.refresh suivi d'un DoEvents :
ça fait un truc drôle sur la FileListBox, mais c'est toujours pareil.
C'est ce qui me tue vraiment dans les développements sous Windows :
tu fais bien ce que dit la doc, et pourtant, ça marche pas (et sans
expli-
cation). Jadis je faisais des développements sur IBM : c'était pas
évident
de trouver la doc, mais tout était dans la doc, et ça marchait comme dit
dans la doc !!!!!











Avatar
at
L'AMI Yves a exprimé avec précision :

Alors je suis peut être dans un cas de ce genre. Par acquit de conscience,
'ai essayé en désactivant le cache : c'est pareil. J'ai essayé aussi de
mettre




*Essaye de créer une collection sur file et de charger et décharger
l'objet pour voir si la mise à jour est prise en compte.
1 2