begin process at 2012 02 13 00:49:07
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

API

 > INSTANCIER UN FILELISTBOX ET UN DIRLISTBOX SANS PLACER UN OBJET SUR UNE FORM

INSTANCIER UN FILELISTBOX ET UN DIRLISTBOX SANS PLACER UN OBJET SUR UNE FORM


 Information sur la source

 Description

comment utiliser un dirlistbox sans le creer sur une form?
lorsque je lance le code ci dessous (qui devrai me donner la taille d'un repertoire)

j'obtient le message d'erraur suivant
object variable or with bloc variable not set

sur
dire.path = path

et la je suis bloque car je ne sais pas quoi faire... des idee? des solution ?
merci bcp de votre aide

Source

  • Private Function taillepath(ByVal path As String) As Double
  • Dim dire As DirListBox
  • dire.path = path
  • Dim file As FileListBox
  • file.path = path
  • Dim liste As ListBox
  • liste.Clear
  • taillepath = 0
  • Dim i As Integer
  • 'dossier
  • i = 0
  • Do While i < dire.ListCount
  • liste.AddItem dire.List(i)
  • i = i + 1
  • Loop
  • Do While liste.ListCount
  • 'fichier
  • i = 0
  • Do While i < File1.ListCount
  • taillepath = taillepath + FileLen(File1.path & "\" & File1.List(i))
  • i = i + 1
  • Loop
  • dire.path = liste.List(0)
  • file.path = liste.List(0)
  • liste.RemoveItem (0)
  • i = 0
  • Do While i < dire.ListCount
  • liste.AddItem dire.List(i)
  • i = i + 1
  • Loop
  • Loop
  • End Function
Private Function taillepath(ByVal path As String) As Double
Dim dire As DirListBox
dire.path = path
Dim file As FileListBox
file.path = path
Dim liste As ListBox
liste.Clear
taillepath = 0
Dim i As Integer
'dossier
i = 0
Do While i < dire.ListCount
    liste.AddItem dire.List(i)
    i = i + 1
    Loop
Do While liste.ListCount
    'fichier
    i = 0
    Do While i < File1.ListCount
        taillepath = taillepath + FileLen(File1.path & "\" & File1.List(i))
        i = i + 1
        Loop
    dire.path = liste.List(0)
    file.path = liste.List(0)
    liste.RemoveItem (0)
    i = 0
    Do While i < dire.ListCount
        liste.AddItem dire.List(i)
        i = i + 1
        Loop
    Loop
End Function

 Conclusion

ben heu... ca marche pas... je demande de l'aide qui pourra servir a d'autre personne...


 Sources du même auteur

Source avec Zip Source avec une capture SERVEUR WEB A OPTIMISER
Source avec Zip SHUTDOWN ZINZIN
Source avec Zip AGENDA INCLUANT DES FONCTION DE PROTECTION CONTRE LE REBOOT ...

 Sources de la même categorie

Source avec Zip Source .NET (Dotnet) .NET DEPENDENCY VIEWER : ARBRE DES DÉPENDANCES D'UN ASSEMBLY... par ShareVB
Source avec Zip Source .NET (Dotnet) UTILITAIRE SKYDRIVE par MasterShadows
Source avec Zip ROTATION RAPIDE D'IMAGE par trex70
Source avec Zip Source avec une capture ENUMERATION DES PORTS TCP ET IDENTIFCATION DU PROCESS (PID) ... par Renfield
Source avec Zip Source avec une capture MOUSE SPEED AND WEIGHT : RETOUR DE FORCE VIRTUEL ! par ScSami

Commentaires et avis

Commentaire de Stephane le 01/05/2005 23:36:54

slut

il y a un forum pour ca !
j'ai cru que tu donné la solution que je ne connais pas !

++

Commentaire de crenaud76 le 02/05/2005 12:33:11

Cela devrait effectivement être posé dans le forum... mais voici la réponse :
Il manque un Set Dire = New Dirlistbox
et un Set File = New FileListBox
Mais a quoi cela sert-il d'instancié un controle si tu ne l'affiche aps sur une form .... Je me pose encore la question.

Commentaire de Stephane le 02/05/2005 19:16:19

si tu veux l'utiliser dans un module, une application sans form

++

Commentaire de crenaud76 le 02/05/2005 19:32:00

Sans aucune form, je ne vois pas ce que cela te donnerai !!!! Faudra me dire à quoi cela servirai, franchement, je ne vois pas !!

Commentaire de Stephane le 02/05/2005 19:44:40

et bien, quand t sous windows, si tu a 5 prog ouvert, tu aura peut etre 5 fenetre ou plus ou moins, mais tu auras peut etre 15 ou 20 programmes qui tournent. Un programme n'est pas forcement composé de fenetres, exemple tu peux faire un prog qui intercepte les touche du joystick, et en simule du clavier (une sorte de driver), et si par malheur tu a besoin de parcourir des dossiers, pour faire simple, instancier un DirList est la facon la plus simple (Sans API)

ps ta solution ne marche pas : erreur sur     Set Dire = New DirListBox

++

Commentaire de misterzinzin le 02/05/2005 21:03:33

Set dire = New DirListBox

invalid use of new keyword ....

une autre solution ?

pour le coup du forum je ne savais pas qu'on pouvais le faire come ca desole...

Commentaire de crenaud76 le 03/05/2005 08:56:15

Je suis d'accord sur l'idée d'avoir une application sans fenêtre, mais je ne comprend pas en quoi un Dirlistbox ou un filelistbox est utile dans ce cas !!! Le but d'un filelistbox est d'afficher la liste des fichiers contenu dans un répertoire à l'utilisateur. Si tu l'utilises comme cela uniquement pour lister les fichiers d'un répertoire, autant utiliser la fonction Dir() dans une boucle While ... Wend. Cela sera aussi rapide et bien moins lourd en mémoire ....
Je suis peut-être bouché, mais je ne vois toujours pas l'utilité !!!

Commentaire de Stephane le 03/05/2005 18:50:05

:D

c vrai dir serait bien mieux adapte, mais c'est une alternative :)

+

Commentaire de crenaud76 le 03/05/2005 22:20:46

Une alternative sans en être vraiment une !!! Pourquoi utiliser un bazooka pour tuer un moustique, alors que la paume de la main suffit !!

Commentaire de misterzinzin le 03/05/2005 22:57:50

ben c que je c pas comment se servir de la fonction dir... etc...
pour la solution au probleme, voici le code qui fonctionne...

Private Function taillepath(ByVal path As String) As Double
On Error Resume Next 'il y a des fichier foireux qui tourne sur le pc
Dim dire As DirListBox
Set dire = Controls.Add("VB.DirListBox", "Dir10")
dire.path = path
Dim file As FileListBox
Set file = Controls.Add("VB.FileListBox", "File10")
file.path = path
Dim liste As ListBox
Set liste = Controls.Add("VB.ListBox", "List10")
liste.Clear
taillepath = 0
Dim i As Integer
i = 0

    liste.AddItem path
    
Do While liste.ListCount
    'fichier
    dire.path = liste.List(0)
    dire.Refresh
    file.path = liste.List(0)
    file.Refresh
    'z
    
    liste.RemoveItem (0)
    i = 0
    Do While i < dire.ListCount
        liste.AddItem dire.List(i)
        i = i + 1
        Loop
    i = 0
    Do While i < file.ListCount
        taillepath = taillepath + FileLen(file.path & "\" & file.List(i))
        i = i + 1
        Loop
    Loop
    
    Controls.Remove dire
    Controls.Remove file
    Controls.Remove liste
End Function


si vous savez la modifier en remplacant  avec des autre fonction (dir et compagnie) je suis preneur

en passant, ma fonction est limitee par la taille des fichier (3go ca passe en negatif) qq connaitrait pas un type de donne plus "etendu" du genre qui compte de 0 a 2 tera (ca laisse de la marge pour les fichier lol)

Commentaire de Stephane le 04/05/2005 12:13:27

salut

en ce qui concerne la taille du fichier, c'est du au fait que le long VB est signé, or celui de la fonction ne l'est pas. voici le remede :

Taille=Filelen(fichier)
If Taille < 0 Then Taille = 2 ^ 32 + Taille

++

Commentaire de misterzinzin le 09/05/2005 20:55:35

mecri bcp :-)...

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales