Pourquoi ca marche pas???

cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006 - 25 déc. 2003 à 17:37
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006 - 28 déc. 2003 à 14:50
Public dates As Date
Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Private Sub Form_Load()
Dim mIcon As Long
Dim repertoire As String
Dim fichier As String
Dim taille As String
Dim tabl() As String
Dim obj As ListItem

view.ColumnHeaders.Clear
view.ListItems.Clear
view.ColumnHeaders.Add , , "icon", view.Width / 4
view.ColumnHeaders.Add , , "fichier", view.Width / 4
view.ColumnHeaders.Add , , "taille", view.Width / 4 - 65
view.ColumnHeaders.Add , , "date de creation", view.Width / 4

view.HideColumnHeaders = False
view.view = lvwReport

repertoire = InputBox("ne pas oublier le \ a la fin", "arbrescense du fichier")
fichier = Dir(repertoire & "\*.*")
While fichier <> ""
MsgBox (repertoire & fichier)
mIcon = ExtractAssociatedIcon(App.hInstance, repertoire & fichier, 2)
DrawIcon Me.hdc, 0, 0, mIcon

DestroyIcon mIcon
taille = FileLen(repertoire & fichier)
If taille > 1024 Then
taille = taille / 1024
tabl = Split(taille, ",")
taille = tabl(0)
If taille > 1024 Then
taille = taille / 1024
tabl = Split(taille, ",")
taille = tabl(0) & " Mo"
Else
taille = taille & " Ko"
End If
Else
taille = taille & " o"
End If
cpt1 = cpt1 + 40
GetDates (repertoire & fichier)
mIcon = ExtractAssociatedIcon(App.hInstance, repertoire & fichier, 2)

Set obj = view.ListItems.Add(, , DrawIcon(hdc, 0, 0, mIcon))
obj.SubItems(1) = fichier
obj.SubItems(2) = taille
obj.SubItems(3) = dates

DestroyIcon mIcon

DestroyIcon mIcon
fichier = Dir()
Wend
End Sub
Private Sub GetDates(strFile As String)
    Dim st(0 To 2) As SYSTEMTIME, I As Byte
    
    If GetFileTimes(strFile, st(0), st(1), st(2)) Then
        dates = CStr(st(I).wDay) & "/" & CStr(st(I).wMonth) & "/" & CStr(st(I).wYear)
        
    End If
    
End Sub


bon j'ai fait ce code (pas tout)
ca liste les fichier ds une listview avec leur date de creation et leur taille
tt ca ca marche
mais je veux mettre aussi les icone des fichier et la ca beug qqun pourrait esayer de m'aider

il y a un module pour la date de creation(pr ceux qui aurrait du mal

si j' ai dis une connerie c'est que je l' ai pas vu. ;D

17 réponses

cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
25 déc. 2003 à 17:39
j'ai mis le code parce que ca mernerver il y a des truc en trop
quant je fait des test des fois je suis pas claire

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 déc. 2003 à 13:31
mets la propriete AutoRedraw de ta feuille à True, et tu verra......

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
26 déc. 2003 à 19:07
JE PENSE QUE TU AS PAS COMPRIS
JE VEUX METTRE LES FICHIER DANS LA LISTVIEW

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
26 déc. 2003 à 19:11
question on peut mettre des icone ds une list view????????

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0

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

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 déc. 2003 à 20:05
J'ai très bien compris, je te remercie.

Ce que je t'ai demandé de modifier etait censé afficher les icones sur le fond de ta form, comme ton code le demande (a l'oeil nu, j'ai po testé ;) .

Mais dis moi a quel endroit de ton code, est-ce que tu places l'icone dans le ImageList ?

C'est une etape indispensable avant de specifier une icone dans un ListItem.....

As-tu crée un imagelist ?

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
26 déc. 2003 à 20:30
c quoi ce truc

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
26 déc. 2003 à 21:25
SI J4AI TOUT COMPRIS POUR POUVOIR METTRE UNE IMAGE DANS UNE LISTVIEW on mets l'image dans une imagelist pui on met l imagelist ds la list view

je la trouve ou l imagelist

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 déc. 2003 à 21:44
Dans la barre des controles, en dessous des classiques Textbox es autres boutons , tu dois avoir le TreeView, et le ListView.... Et les ImageList !!

Tu en places une sur la feuille, tu cliques droit dessus, et tu fait propriétés. Tu pourras alors definir les images, avec leur clef (nom). Ensuite, dans les propriétés de ton listview (bouton droit....) tu verra plusieurs zones ou tu pourras selectionner ton imagelist.

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
26 déc. 2003 à 21:59
ca permet d'inserer des fichier image moi je net pas de fichier mais juste des image que je fait apparaitre avec

drawicon me.hdc, , micon

je te remet le code sans ma merde la j aligne les icone sur ma formet ca me sert a rien

Public dates As Date
Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long

Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Private Sub Form_Load()
Dim cpt1 As Integer
Dim mIcon As Long
Dim repertoire As String
Dim fichier As String
Dim taille As String
Dim tabl() As String
Dim obj As ListItem

view.ColumnHeaders.Clear
view.ListItems.Clear
view.ColumnHeaders.Add , , "icon", view.Width / 4
view.ColumnHeaders.Add , , "fichier", view.Width / 4
view.ColumnHeaders.Add , , "taille", view.Width / 4 - 65
view.ColumnHeaders.Add , , "date de creation", view.Width / 4

view.HideColumnHeaders = False
view.view = lvwReport

repertoire = InputBox("ne pas oublier le \ a la fin", "arbrescense du fichier")
fichier = Dir(repertoire & "\*.*")
While fichier <> ""

mIcon = ExtractAssociatedIcon(App.hInstance, repertoire & fichier, 2)
DrawIcon Image.hdc, cpt1, 0, mIcon
DestroyIcon mIcon
taille = FileLen(repertoire & fichier)
If taille > 1024 Then
taille = taille / 1024
tabl = Split(taille, ",")
taille = tabl(0)
If taille > 1024 Then
taille = taille / 1024
tabl = Split(taille, ",")
taille = tabl(0) & " Mo"
Else
taille = taille & " Ko"
End If
Else
taille = taille & " o"
End If
cpt1 = cpt1 + 40
GetDates (repertoire & fichier)

Set obj = view.ListItems.Add(, , fichier)
obj.SubItems(1) = fichier
obj.SubItems(2) = taille
obj.SubItems(3) = dates

fichier = Dir()
Wend
End Sub
Private Sub GetDates(strFile As String)
    Dim st(0 To 2) As SYSTEMTIME, I As Byte
    
    If GetFileTimes(strFile, st(0), st(1), st(2)) Then
        dates = CStr(st(I).wDay) & "/" & CStr(st(I).wMonth) & "/" & CStr(st(I).wYear)
        
    End If
    
End Sub


si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
26 déc. 2003 à 22:12
En fait, chose assez sympa tu ne peux pas lier un ImageList vide a un controle, et tu ne peux pas modifier une imagelist si elle est liée a un controle.

Il va falloir jouer du ImageList1.ListImages.Add ........
et ensuite faire Set ListView1.Icons = ListImages

ensuite, quand tu crées un imagelist, pense à y associer une icone :

obj.Icon = "KeyImage1"

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
27 déc. 2003 à 18:37
imagelist1.listimages.add
ca permet d'ajouter un fichier a l'imagelist
mais moi je n'est pas de fichier

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
27 déc. 2003 à 18:45
la je patauge grave
tu peut pas me donner un bout de code plutot que des ligne

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 déc. 2003 à 20:23
ok ok.

Content de voir que tu as cherché et que tu n'attendes pas que ca tombe tout cuit,

j'ai mis un pictureBox nommé PicIcon

partis de ton code, j'y ai fais le ménage pour que tu y voies plus clair....

Private Declare Function ExtractAssociatedIcon Lib "shell32.dll" Alias "ExtractAssociatedIconA" (ByVal hInst As Long, ByVal lpIconPath As String, lpiIcon As Long) As Long
Private Declare Function DrawIcon Lib "user32" (ByVal hdc As Long, ByVal x As Long, ByVal y As Long, ByVal hIcon As Long) As Long
Private Declare Function DestroyIcon Lib "user32" (ByVal hIcon As Long) As Long

Private Sub Form_Load()
    Dim mIcon As Long
    Dim repertoire As String
    Dim fichier As String
    
    View.ColumnHeaders.Clear
    View.ListItems.Clear
    View.ColumnHeaders.Add , , "Fichier", View.Width
    
    View.HideColumnHeaders = False
    View.View = lvwReport

    repertoire = "C:"
    fichier = Dir(repertoire & "\*.*")

    
    ImageList1.ImageHeight = 20
    ImageList1.ImageWidth = 24
    PicIcon.BackColor = vbWhite
    PicIcon.AutoRedraw = True
    While fichier <> ""
        mIcon = ExtractAssociatedIcon(App.hInstance, repertoire & fichier, 2)
        PicIcon.Cls
        DrawIcon PicIcon.hdc, 0, 0, mIcon
        DestroyIcon mIcon
        ImageList1.ListImages.Add Key:=fichier, Picture:=PicIcon.Image
        
        View.ListItems.Add Key:=fichier, Text:=fichier
        fichier = Dir()
    Wend

    Dim LI As ListItem
    Set View.SmallIcons = ImageList1
    For Each LI In View.ListItems
        LI.SmallIcon = LI.Text
    Next LI
End Sub



il faut dans un premier temps créer toutes les icones dans le imageList, puis le lier au listview, et enfin, specifier les icones de chacun.....

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 déc. 2003 à 20:24
ah, et tu ferais mieux d'utiliser DrawIconEx !!!!!

visuellement ce serait mieux : tu pourrais spécifier la taille de l'icone, ce qui donnerais moins cette impression d'ecrasement.....

allez , bonne continuation.....

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
27 déc. 2003 à 20:57
tu vas peut etre pas me croire mais j'avais essayer avec une picturebox mais vu que c'etait la premiere fois que je l'utiliser j'ai pas reussi

ca me permet juste de verifié que mon idée etait pas trop mauvaise

DrawIconEx:c'est encore un truc de barbare que je connait pas encore

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
27 déc. 2003 à 21:11
DrawIconEx, c'est juste une autre API !!

Declare Function DrawIconEx Lib "user32" Alias "DrawIconEx" (ByVal hdc As Long, ByVal xLeft As Long, ByVal yTop As Long, ByVal hIcon As Long, ByVal cxWidth As Long, ByVal cyWidth As Long, ByVal istepIfAniCur As Long, ByVal hbrFlickerFreeDraw As Long, ByVal diFlags As Long) As Long

ca te permet de specifier les dimensions de l'image :

DrawIconEx Me.hdc, 0, 0, mIcon, 24 , 24 , 0, 0, 3

By Renfield

[mailto:thomas_reynald@msn.com thomas_reynald@msn.com]

Aucune touche n'a ete blessee lors de la saisie de ce texte.......... ;)
0
cs_lataupeben Messages postés 232 Date d'inscription dimanche 19 octobre 2003 Statut Membre Dernière intervention 24 janvier 2006
28 déc. 2003 à 14:50
merci normalement ca devrait etre bon maintenant

si j' ai dis une connerie c'est que je l' ai pas vu. ;D
0
Rejoignez-nous