Image issue d'un ExplorerTree

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
ThoT
Messages : 33
Inscription : mar. 20/mars/2007 17:51

Image issue d'un ExplorerTree

Message 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:
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Message 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.
ThoT
Messages : 33
Inscription : mar. 20/mars/2007 17:51

Message 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?
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message 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

Stefou
Messages : 234
Inscription : jeu. 18/janv./2007 14:08

Message 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]
brossden
Messages : 833
Inscription : lun. 26/janv./2004 14:37

Message 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:
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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
Répondre