bonjour à tous,
j'utilise cette petite fonction pour extraire les icônes d'un fichier :
'##################################################
Private Sub File1_Click() '## choix d'un fichier ##
'##################################################
Dim Indx As Integer, NbIco As Long, Ico As Long, LstImg As ListItem
ListView1.ListItems.Clear
NbIco = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), -1) - 1
For Indx = 1 To NbIco
Ico = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), Indx)
Picture1.Picture = LoadPicture(vbNullString)
DrawIcon Picture1.hDC, 0, 0, Ico
DrawIcon ImageList1.hImageList, 0, 0, Ico
Set LstImg = ListView1.ListItems.Add()
LstImg.Icon = ImageList1.ListImages.Add(, , Picture1.Image).Index
DestroyIcon Ico
Next Indx
End Sub
ça marche parfaitement ( ?? ) quand j'exécute "sous VB",
mais ne m'affiche plus rien quand je crée un .exe.
Windows XP, VB 5. Si vous avez besoin de plus d'infos...
Pouvez-vous m'aider/m'orienter ? merci d'avance.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Jacques93
Bonjour Bul, Bul a écrit :
bonjour à tous, j'utilise cette petite fonction pour extraire les icônes d'un fichier :
'################################################## Private Sub File1_Click() '## choix d'un fichier ## '################################################## Dim Indx As Integer, NbIco As Long, Ico As Long, LstImg As ListItem
ListView1.ListItems.Clear NbIco = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), -1) - 1 For Indx = 1 To NbIco Ico = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), Indx) Picture1.Picture = LoadPicture(vbNullString) DrawIcon Picture1.hDC, 0, 0, Ico DrawIcon ImageList1.hImageList, 0, 0, Ico Set LstImg = ListView1.ListItems.Add() LstImg.Icon = ImageList1.ListImages.Add(, , Picture1.Image).Index DestroyIcon Ico Next Indx End Sub
ça marche parfaitement ( ?? ) quand j'exécute "sous VB", mais ne m'affiche plus rien quand je crée un .exe. Windows XP, VB 5. Si vous avez besoin de plus d'infos...
Je n'ai plus VB5, mais en VB6, peut être pas la cause du problème, mais le premier argument de l'API ExtractIcon :
est l'instance de l'application appelante, et non un handle de fenêtre, donc plutôt :
App.hInstance
que
Me.hWnd
Et il me semble que tu risques d'avoir un problème entre le chemin courant (CurDir) et le chemin du FileListBox (File1.Path) qui peuvent varier entre l'IDE et l'EXE. Essaie en initialisant dans Form_Load :
File1.Path = " C:Toto" ' A adapter
et dans ta fonction :
Private Sub File1_Click() Dim Indx As Integer Dim NbIco As Long Dim Ico As Long Dim LstImg As ListItem
ListView1.ListItems.Clear NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) For Indx = 0 To NbIco - 1 Ico = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) Picture1.Picture = LoadPicture(vbNullString) DrawIcon Picture1.hdc, 0, 0, Ico DrawIcon ImageList1.hImageList, 0, 0, Ico Set LstImg = ListView1.ListItems.Add() LstImg.Icon = ImageList1.ListImages.Add(, , Picture1.Image).Index DestroyIcon Ico Next Indx End Sub
Sous VB6, c'est OK.
-- Cordialement,
Jacques.
Bonjour Bul,
Bul a écrit :
bonjour à tous,
j'utilise cette petite fonction pour extraire les icônes d'un fichier :
'##################################################
Private Sub File1_Click() '## choix d'un fichier ##
'##################################################
Dim Indx As Integer, NbIco As Long, Ico As Long, LstImg As ListItem
ListView1.ListItems.Clear
NbIco = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), -1) - 1
For Indx = 1 To NbIco
Ico = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), Indx)
Picture1.Picture = LoadPicture(vbNullString)
DrawIcon Picture1.hDC, 0, 0, Ico
DrawIcon ImageList1.hImageList, 0, 0, Ico
Set LstImg = ListView1.ListItems.Add()
LstImg.Icon = ImageList1.ListImages.Add(, , Picture1.Image).Index
DestroyIcon Ico
Next Indx
End Sub
ça marche parfaitement ( ?? ) quand j'exécute "sous VB",
mais ne m'affiche plus rien quand je crée un .exe.
Windows XP, VB 5. Si vous avez besoin de plus d'infos...
Je n'ai plus VB5, mais en VB6, peut être pas la cause du problème, mais
le premier argument de l'API ExtractIcon :
est l'instance de l'application appelante, et non un handle de fenêtre,
donc plutôt :
App.hInstance
que
Me.hWnd
Et il me semble que tu risques d'avoir un problème entre le chemin
courant (CurDir) et le chemin du FileListBox (File1.Path) qui peuvent
varier entre l'IDE et l'EXE. Essaie en initialisant dans Form_Load :
File1.Path = " C:Toto" ' A adapter
et dans ta fonction :
Private Sub File1_Click()
Dim Indx As Integer
Dim NbIco As Long
Dim Ico As Long
Dim LstImg As ListItem
ListView1.ListItems.Clear
NbIco = ExtractIcon(App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), -1)
For Indx = 0 To NbIco - 1
Ico = ExtractIcon(App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), Indx)
Picture1.Picture = LoadPicture(vbNullString)
DrawIcon Picture1.hdc, 0, 0, Ico
DrawIcon ImageList1.hImageList, 0, 0, Ico
Set LstImg = ListView1.ListItems.Add()
LstImg.Icon = ImageList1.ListImages.Add(, , Picture1.Image).Index
DestroyIcon Ico
Next Indx
End Sub
bonjour à tous, j'utilise cette petite fonction pour extraire les icônes d'un fichier :
'################################################## Private Sub File1_Click() '## choix d'un fichier ## '################################################## Dim Indx As Integer, NbIco As Long, Ico As Long, LstImg As ListItem
ListView1.ListItems.Clear NbIco = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), -1) - 1 For Indx = 1 To NbIco Ico = ExtractIcon(Me.hWnd, File1.List(File1.ListIndex), Indx) Picture1.Picture = LoadPicture(vbNullString) DrawIcon Picture1.hDC, 0, 0, Ico DrawIcon ImageList1.hImageList, 0, 0, Ico Set LstImg = ListView1.ListItems.Add() LstImg.Icon = ImageList1.ListImages.Add(, , Picture1.Image).Index DestroyIcon Ico Next Indx End Sub
ça marche parfaitement ( ?? ) quand j'exécute "sous VB", mais ne m'affiche plus rien quand je crée un .exe. Windows XP, VB 5. Si vous avez besoin de plus d'infos...
Je n'ai plus VB5, mais en VB6, peut être pas la cause du problème, mais le premier argument de l'API ExtractIcon :
est l'instance de l'application appelante, et non un handle de fenêtre, donc plutôt :
App.hInstance
que
Me.hWnd
Et il me semble que tu risques d'avoir un problème entre le chemin courant (CurDir) et le chemin du FileListBox (File1.Path) qui peuvent varier entre l'IDE et l'EXE. Essaie en initialisant dans Form_Load :
File1.Path = " C:Toto" ' A adapter
et dans ta fonction :
Private Sub File1_Click() Dim Indx As Integer Dim NbIco As Long Dim Ico As Long Dim LstImg As ListItem
ListView1.ListItems.Clear NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) For Indx = 0 To NbIco - 1 Ico = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) Picture1.Picture = LoadPicture(vbNullString) DrawIcon Picture1.hdc, 0, 0, Ico DrawIcon ImageList1.hImageList, 0, 0, Ico Set LstImg = ListView1.ListItems.Add() LstImg.Icon = ImageList1.ListImages.Add(, , Picture1.Image).Index DestroyIcon Ico Next Indx End Sub
Sous VB6, c'est OK.
-- Cordialement,
Jacques.
Bul
merci Jacques, NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) -1 + Ico = ExtractIcon(VB.App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) et ça baigne, 3 erreurs lamentables de ma part, que je ne voyais pas. curieux quand même ce comportement différent avec le .exe. encore merci. @+
merci Jacques,
NbIco = ExtractIcon(App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), -1) -1
+
Ico = ExtractIcon(VB.App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), Indx)
et ça baigne,
3 erreurs lamentables de ma part, que je ne voyais pas.
curieux quand même ce comportement différent avec le .exe.
encore merci.
@+
merci Jacques, NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) -1 + Ico = ExtractIcon(VB.App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) et ça baigne, 3 erreurs lamentables de ma part, que je ne voyais pas. curieux quand même ce comportement différent avec le .exe. encore merci. @+
Jacques93
Bonjour Bul, Bul a écrit :
merci Jacques, NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) -1 + Ico = ExtractIcon(VB.App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) et ça baigne, 3 erreurs lamentables de ma part, que je ne voyais pas. curieux quand même ce comportement différent avec le .exe. encore merci. @+
De rien, et merci du retour :-)
Pour info, quand on lance l'exe, le chemin courant est celui de l'exe, quand on est dans l'IDE VB, le chemin courant est celui indiqué dans 'démarrer dans' du raccourci qui a lancé VB, s'il est renseigné, sinon sous XP c'est :
%UserProfile%
Dans les versions précédentes de Windows (Win9x), il me semble que c'était le répertoire
%ProgramFiles%Microsoft Visual StudioVB98
et on se fait régulièrement pièger, au début, en enregistrant les .bas, .frm et .vbp, entre autre.
-- Cordialement,
Jacques.
Bonjour Bul,
Bul a écrit :
merci Jacques,
NbIco = ExtractIcon(App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), -1) -1
+
Ico = ExtractIcon(VB.App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), Indx)
et ça baigne,
3 erreurs lamentables de ma part, que je ne voyais pas.
curieux quand même ce comportement différent avec le .exe.
encore merci. @+
De rien, et merci du retour :-)
Pour info, quand on lance l'exe, le chemin courant est celui de l'exe,
quand on est dans l'IDE VB, le chemin courant est celui indiqué dans
'démarrer dans' du raccourci qui a lancé VB, s'il est renseigné, sinon
sous XP c'est :
%UserProfile%
Dans les versions précédentes de Windows (Win9x), il me semble que
c'était le répertoire
%ProgramFiles%Microsoft Visual StudioVB98
et on se fait régulièrement pièger, au début, en enregistrant les .bas,
.frm et .vbp, entre autre.
merci Jacques, NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) -1 + Ico = ExtractIcon(VB.App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) et ça baigne, 3 erreurs lamentables de ma part, que je ne voyais pas. curieux quand même ce comportement différent avec le .exe. encore merci. @+
De rien, et merci du retour :-)
Pour info, quand on lance l'exe, le chemin courant est celui de l'exe, quand on est dans l'IDE VB, le chemin courant est celui indiqué dans 'démarrer dans' du raccourci qui a lancé VB, s'il est renseigné, sinon sous XP c'est :
%UserProfile%
Dans les versions précédentes de Windows (Win9x), il me semble que c'était le répertoire
%ProgramFiles%Microsoft Visual StudioVB98
et on se fait régulièrement pièger, au début, en enregistrant les .bas, .frm et .vbp, entre autre.
-- Cordialement,
Jacques.
Gloops
Salut,
J'imagine que le chemin par défaut de VB est bien le même chemin qui sert par défaut pour sauvegarder le projet ?
Si rien n'est précisé je me retrouver en C:MsOfficeOffice, ce qui est un peu casse-pied je dois dire. Si certaines erreurs surviennent, notamment si VB se plante, on retourne au chemin par défaut C:MsOfficeOffice
Je me demande si on peut changer ça, je dois dire que je n'ai pas cherché. _________________________________________ Jacques93 a écrit, le 19/11/2005 13:06 :
Bonjour Bul, Bul a écrit :
merci Jacques, NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) -1 + Ico = ExtractIcon(VB.App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) et ça baigne, 3 erreurs lamentables de ma part, que je ne voyais pas. curieux quand même ce comportement différent avec le .exe. encore merci. @+
De rien, et merci du retour :-)
Pour info, quand on lance l'exe, le chemin courant est celui de l'exe, quand on est dans l'IDE VB, le chemin courant est celui indiqué dans 'démarrer dans' du raccourci qui a lancé VB, s'il est renseigné, sinon sous XP c'est :
%UserProfile%
Dans les versions précédentes de Windows (Win9x), il me semble que c'était le répertoire
%ProgramFiles%Microsoft Visual StudioVB98
et on se fait régulièrement pièger, au début, en enregistrant les .bas, .frm et .vbp, entre autre.
Salut,
J'imagine que le chemin par défaut de VB est bien le même chemin qui
sert par défaut pour sauvegarder le projet ?
Si rien n'est précisé je me retrouver en C:MsOfficeOffice, ce qui est
un peu casse-pied je dois dire. Si certaines erreurs surviennent,
notamment si VB se plante, on retourne au chemin par défaut
C:MsOfficeOffice
Je me demande si on peut changer ça, je dois dire que je n'ai pas cherché.
_________________________________________
Jacques93 a écrit, le 19/11/2005 13:06 :
Bonjour Bul,
Bul a écrit :
merci Jacques,
NbIco = ExtractIcon(App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), -1) -1
+
Ico = ExtractIcon(VB.App.hInstance, File1.Path & _
"" & File1.List(File1.ListIndex), Indx)
et ça baigne,
3 erreurs lamentables de ma part, que je ne voyais pas.
curieux quand même ce comportement différent avec le .exe.
encore merci. @+
De rien, et merci du retour :-)
Pour info, quand on lance l'exe, le chemin courant est celui de l'exe,
quand on est dans l'IDE VB, le chemin courant est celui indiqué dans
'démarrer dans' du raccourci qui a lancé VB, s'il est renseigné, sinon
sous XP c'est :
%UserProfile%
Dans les versions précédentes de Windows (Win9x), il me semble que
c'était le répertoire
%ProgramFiles%Microsoft Visual StudioVB98
et on se fait régulièrement pièger, au début, en enregistrant les .bas,
.frm et .vbp, entre autre.
J'imagine que le chemin par défaut de VB est bien le même chemin qui sert par défaut pour sauvegarder le projet ?
Si rien n'est précisé je me retrouver en C:MsOfficeOffice, ce qui est un peu casse-pied je dois dire. Si certaines erreurs surviennent, notamment si VB se plante, on retourne au chemin par défaut C:MsOfficeOffice
Je me demande si on peut changer ça, je dois dire que je n'ai pas cherché. _________________________________________ Jacques93 a écrit, le 19/11/2005 13:06 :
Bonjour Bul, Bul a écrit :
merci Jacques, NbIco = ExtractIcon(App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), -1) -1 + Ico = ExtractIcon(VB.App.hInstance, File1.Path & _ "" & File1.List(File1.ListIndex), Indx) et ça baigne, 3 erreurs lamentables de ma part, que je ne voyais pas. curieux quand même ce comportement différent avec le .exe. encore merci. @+
De rien, et merci du retour :-)
Pour info, quand on lance l'exe, le chemin courant est celui de l'exe, quand on est dans l'IDE VB, le chemin courant est celui indiqué dans 'démarrer dans' du raccourci qui a lancé VB, s'il est renseigné, sinon sous XP c'est :
%UserProfile%
Dans les versions précédentes de Windows (Win9x), il me semble que c'était le répertoire
%ProgramFiles%Microsoft Visual StudioVB98
et on se fait régulièrement pièger, au début, en enregistrant les .bas, .frm et .vbp, entre autre.