Page 1 sur 1

Image issue d'un ExplorerTree

Publié : sam. 24/mars/2007 16:37
par ThoT
Bonjour tout le monde! :D

Je voudrai bien afficher une image que je la selectionne dans un ExplorerTree.

Voilà le code que j'ai fait :
Enumeration
#Window_0
EndEnumeration

Enumeration
#ExplorerTree_0
#Image_0
EndEnumeration

;---------- Declaration des procedures ----------

Procedure Fenetre1()
If OpenWindow(#Window_0, 216, 0, 600, 300, "Explorateur d'images", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
If CreateGadgetList(WindowID(#Window_0))
ExplorerTreeGadget(#ExplorerTree_0, 10, 10, 250, 280, "C:\*.jpg;*.bmp;*.gif")
ImageGadget(#Image_0, 340, 10, 250, 280, 0)

EndIf
EndIf
EndProcedure

Fenetre1()

;---------- Boucle Principale ----------

Repeat

evenement = WaitWindowEvent()

If evenement = #PB_EventType_Change And GetGadgetState = #PB_Explorer_File

chemin.s = GetGadgetText(#ExplorerTree_0)

image = LoadImage(#PB_Any, chemin.s)

SetGadgetState(#image_0, ImageID(image))

EndIf

Until evenement = #PB_Event_CloseWindow

End
Le soucis, c'est que ca marche poa et surtout que je ne comprends poa pourquoi... j'ai honte de ma nullité :oops:
Aidez moi à sortir de l'ignorance SVP!!! :wink:

Publié : sam. 24/mars/2007 17:29
par nico
Purebasic c'est pas un jeu de puzzle!

A partir du moment où tu connais tes bases je veux bien t'aider, mais là faut que tu revois ta gestion des évènements.

Publié : sam. 24/mars/2007 17:36
par ThoT
C'est à dire??

C'est quoi pour toi les bases??

Explique moi un peu! :cry:

Ca fait moins d'une semaine que je connais PureBasic alors je ne peux pas tout connaitre des evenement ni de leur utilisation et l'aide du logiciel apporte de la theorie mais ne donne pas d'exemple concret...
alors moi, je rame à mort!!

Est ce qu'il y a un canal IRC pour les PureBasistes?

Publié : sam. 24/mars/2007 18:51
par brossden
Je n'ai pas le temps d'être plus explicite mais regarde les différence avec ton code !

Code : Tout sélectionner


UseJPEGImageDecoder() 
UsePNGImageDecoder() 
UseTIFFImageDecoder() 
UseTGAImageDecoder() 

Enumeration
  #Window_0
EndEnumeration

Enumeration
  #ExplorerTree_0
  #Image_0
EndEnumeration

;---------- Declaration des procedures ----------

Procedure Fenetre1()
  If OpenWindow(#Window_0, 216, 0, 600, 300, "Explorateur d'images", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
    If CreateGadgetList(WindowID(#Window_0))
      ExplorerTreeGadget( #ExplorerTree_0, 10, 10, 250, 280, "C:\*.jpg;*.bmp;*.tif;*.png")
      ImageGadget(#Image_0, 270, 10, 250, 280, 0)
      
    EndIf
  EndIf
EndProcedure

Fenetre1()

;---------- Boucle Principale ----------

Repeat
  
  Event = WaitWindowEvent()
  GadgetID = EventGadget()
  If Event = #PB_Event_Gadget
    If GetGadgetState(#ExplorerTree_0) = #PB_Explorer_File
      image.s = GetGadgetText(#ExplorerTree_0)
      LoadImage(#Image_0, image)
      ResizeImage(#Image_0,320,250)
      SetGadgetState(#Image_0, ImageID(#Image_0))
      
    EndIf
  EndIf
Until Event = #PB_Event_CloseWindow

End


Publié : sam. 24/mars/2007 18:55
par Stefou
C'est toujours parreil lorsque je réponds à une question je me fais toujours griller ! :?

Bon je balance quand même mon code , et je remet ma coquille

Code : Tout sélectionner

Enumeration
     #Window_0
EndEnumeration

Enumeration
     #ExplorerTree_0
     #Image_0
EndEnumeration

;---------- Declaration des procedures ----------

Procedure Fenetre1()
     If OpenWindow(#Window_0, 216, 0, 600, 300, "Explorateur d'images", #PB_Window_SystemMenu | #PB_Window_SizeGadget | #PB_Window_TitleBar )
          If CreateGadgetList(WindowID(#Window_0))
               ExplorerTreeGadget(#ExplorerTree_0, 10, 10, 250, 280, "C:\*.jpg;*.bmp;*.gif")
               ImageGadget(#Image_0, 340, 10, 250, 280, 0)
               
          EndIf
     EndIf
EndProcedure

UseJPEGImageDecoder() ;permet de lire les images jpg
Fenetre1()

;---------- Boucle Principale ----------

Repeat
     
     evenement = WaitWindowEvent()
     Select EventWindow() ;on selectionne la fenetre ou l'evenement est intervenu (pas obligatoire si il y en a qu'une !)
          
          Case #Window_0;{
               
               Select evenement 
                    Case #WM_KEYDOWN  ;{touche clavier
                         Debug "Appuye touche "+Str(EventwParam())
                         id_touche=EventwParam()
                         Select id_touche
                              
                         EndSelect
                         ;}
                    Case #PB_Event_Gadget;{*****************Choix d'un bouton
                         id_gadget=EventGadget()
                         Select id_gadget ;tu peux remplacer ces 2 lignes par : Select EventGadget()
                              Case #ExplorerTree_0
                                   If EventType() = #PB_EventType_Change 
                                        
                                        chemin.s = GetGadgetText(#ExplorerTree_0)
                                        Debug chemin.s
                                        If FileSize(chemin)>0 ; verification de l'existence du fichier
                                             image = LoadImage(#PB_Any, chemin.s)
                                             If image
                                                  SetGadgetState(#Image_0, ImageID(image))
                                             Else
                                                  Debug "lecture d'image impossible"
                                             EndIf
                                             
                                        EndIf
                                        
                                   EndIf  
                                   
                         EndSelect
                         
                         ;}
                    Case #PB_Event_Menu  ;{********************Choix d'un menu
                         
                         Select EventMenu()
                              
                              
                         EndSelect
                         ;}
               EndSelect
               ;}
     EndSelect
     
     
Until evenement = #PB_Event_CloseWindow

End 
[/quote]

Publié : dim. 25/mars/2007 14:07
par brossden
Stefou a écrit :C'est toujours parreil lorsque je réponds à une question je me fais toujours griller ! :?
Désolé Stefou la prochaine fois je te demanderai si je peux ! :lol: :lol:

Publié : dim. 25/mars/2007 18:59
par Backup
ThoT a écrit :et l'aide du logiciel apporte de la theorie mais ne donne pas d'exemple concret...
alors moi, je rame à mort!!
le Forum a une rubrique débutant , avec des exemples "[TUTO]"progressif pour acquérir les bases
je pense que aller faire un tour a cet endroit est plus que conseillé :D

Je te conseille aussi d'utiliser le Designer d'interface
qui génère une boucle d'event qui donne déjà une bonne idée de la façon
de programmer en purebasic :D