Page 1 sur 1

Utiliser icone des dll

Publié : dim. 13/mai/2007 17:32
par lepiaf31
Salut a tous,
je voudrais savoir comment utiliser une icone de shell32.dll, celle avec beaucoup d'icones de windows
merci d'avance

Publié : dim. 13/mai/2007 18:22
par minirop
faut passer pes les fonctions de l'API win32 certainement (c'est même sûr)

peut être avec une fonction du genre "LoadImage"

http://msdn2.microsoft.com/en-us/library/ms648045.aspx
http://msdn2.microsoft.com/en-us/library/aa920739.aspx

Publié : dim. 13/mai/2007 21:06
par Droopy

Code : Tout sélectionner

; Idea from Rikuk
; File specifies the File where Icon is extracted
; Icon = 0 To ? --> Return handle of Image
; Icon = -1 --> Return the count of Icon

Procedure IconExtract(File.s,Icon.l)
  ProcedureReturn ExtractIcon_(0,File,Icon) 
EndProcedure

;/ Test
#file="C:\WINDOWS\explorer.exe"
Count=IconExtract(#file,-1)
OpenWindow(0,0,0,130,70,Str(Count)+" Icons",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
CreateGadgetList(WindowID(0)) 
ButtonImageGadget(0,10,10,48,48,IconExtract(#file,pointer)) 
TextGadget(1,80,30,40,20,"n° 1")


Repeat
  event=WaitWindowEvent()
  
  If event= #PB_Event_Gadget And EventGadget()=0 And EventType()=#PB_EventType_LeftClick
    pointer+1
    If pointer=Count : pointer=0 : EndIf
    SetGadgetState(0,IconExtract(#file,pointer))
    SetGadgetText(1,"n° "+Str(pointer+1))
  EndIf
Until event=#PB_Event_CloseWindow

Publié : lun. 14/mai/2007 6:07
par venom
bonjour,

petite modification :D avec openfilerequester()

Code : Tout sélectionner

; Idea from Rikuk
; File specifies the File where Icon is extracted
; Icon = 0 To ? --> Return handle of Image
; Icon = -1 --> Return the count of Icon

Procedure IconExtract(File.s,Icon.l)
  ProcedureReturn ExtractIcon_(0,File,Icon)
EndProcedure

fichier$ = OpenFileRequester("ouvrir fichier icone","","Fichier|*.*",0)
;/ Test

Count=IconExtract(fichier$,-1)
OpenWindow(0,0,0,130,80,Str(Count)+" Icons",#PB_Window_SystemMenu|#PB_Window_ScreenCentered)
CreateGadgetList(WindowID(0))
ButtonImageGadget(0,10,10,48,48,IconExtract(fichier$,pointer))
TextGadget(1,80,30,40,20,"n° 1")
TextGadget(2,10,60,130,20,GetFilePart(fichier$))


Repeat
  event=WaitWindowEvent()
 
  If event= #PB_Event_Gadget And EventGadget()=0 And EventType()=#PB_EventType_LeftClick
    pointer+1
    If pointer=Count : pointer=0 : EndIf
    SetGadgetState(0,IconExtract(fichier$,pointer))
    SetGadgetText(1,"n° "+Str(pointer+1))
  EndIf
Until event=#PB_Event_CloseWindow

@++