Page 3 sur 4

Re: Les gadgets

Publié : mar. 28/juin/2011 8:11
par Kwai chang caine
Et du cryptage et surtout du createur....l'ASM 8)
Me trompe-je ???? :roll:

C'est vrai, je me suis fait moi aussi cette remarque, en etant étonné de te voir poser des question de KCC :lol:
En tout cas jamais j'aurais cru pouvoir t'aider, vu le niveau que tu as 8O
J'suis drolement fier, et je te remercie de poser des questions, que enfin je peux repondre :mrgreen:
Et aussi merci aux autres de m'avoir laissé le temps :?

Re: Les gadgets

Publié : mar. 28/juin/2011 8:19
par SPH
Kwai chang caine a écrit :Et du cryptage et surtout du createur....l'ASM 8)
Me trompe-je ???? :roll:
Tout est relatif. Mais je pense que je suis de niveau moyen en cryptage et de niveau tres bas en asm puisque je ne fais pratiquement que des mov et des xor.
Ca casse le myth hein ? :mrgreen: :|

Re: Les gadgets

Publié : mar. 28/juin/2011 8:47
par Kwai chang caine
Ca casse le myth hein ?
Ouaih un peu :roll:
Mais je t'aime bien quand meme :wink:
En attendant des XOR et des MOV c'est déjà deux instructions de plus que moi :oops:

Re: Les gadgets

Publié : mar. 28/juin/2011 10:46
par Geo Trouvpatou
Salut.
SPH a écrit :

Code : Tout sélectionner

  Case #PB_Event_Gadget
  Case #PB_Event_CloseWindow
Ici, il y a 2 style de Case. Il peux y avoir quoi aussi ?
Voici ma boucle par défaut, avec une autre façon de faire :

Code : Tout sélectionner

;{
;- >>>>>>>>>>>> Ma loop
Repeat
      evenement = WaitWindowEvent()
      
      ;->> Evènements Menu
      If evenement = #PB_Event_Menu
            Select EventMenu()
                        
                  Case #MENU_Quitter 
                        quit = 1
                        
            EndSelect
      EndIf
      
      
      
      ;->> Evènements Window
      If evenement = #PB_Event_CloseWindow
            Select EventWindow() 
                        
                  Case #WINDOW_Window_Main
                        quit = 1     
                        
            EndSelect    
      EndIf
      
      
      
      ;->> Evènements Boutons (Gadgets en général)
      If evenement =  #PB_Event_Gadget
            Select EventGadget()
                        
                  Case #BUTTON_Valider
                        CompilerIf #PB_Compiler_OS = #PB_OS_Windows  
                              DisableGadget(#BUTTON_Valider, 1)
                        CompilerEndIf  
                        
                  Case #BUTTON_Quitter
                        quit = 1 
                        
                  Case #LIST_ICON_Explorateur ; Ici un ListIconGadget() avec d'autres évènements à gérer.
                        Select EventType()
                              Case #PB_EventType_LeftDoubleClick 
                                    ; Du code
                                    
                              Case #PB_EventType_RightClick
                                    ; Du code
                                    
                        EndSelect
                        
            EndSelect
      EndIf
      
Until quit = 1
;}
Bye.

Re: Les gadgets

Publié : mar. 28/juin/2011 12:22
par SPH
Hi !
J'ai rajouté un AddKeyboardShortcut(1, #PB_Shortcut_Escape, 9) quand on ouvre le windows 1 mais ca ne ferme pas le windows 1 quand j'appuie sur escape. J'ai pourtant preciser 2 fois de fermer en case 9...
Pourquoi ?
ps : le petit bazard du gosub, c'est pour laisser la structure "case" belle

Code : Tout sélectionner

UseJPEGImageDecoder()
OpenWindow(0, 0, 0, 500,400, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    PanelGadget     (0, 8, 8, 484, 384)
    AddGadgetItem (0, -1, "L")
      ExplorerListGadget(8, 10, 108, 460, 244, "*.jpg")
      SetGadgetAttribute(8, #PB_Explorer_List,2)
    AddGadgetItem (0, -1,"C")
       PanelGadget (1, 10, 10, 460, 340)
         AddGadgetItem(1, -1, "C")
         AddGadgetItem(1, -1, "D")
       CloseGadgetList()
    AddGadgetItem (0, -1, "C")
    CloseGadgetList()


Repeat
      
  Select WaitWindowEvent()
    
  Case #PB_Event_Gadget
   
   Select EventGadget()
     
    Case 8 ; Play
          If EventType() = 2
            file$=GetGadgetText(8)+GetGadgetItemText(8, GetGadgetState(8))
            Gosub lire
            AddKeyboardShortcut(1, #PB_Shortcut_Escape, 9)
          EndIf
    Case 9 ; Play
       CloseWindow(1)
          
      EndSelect  
   
  Case #PB_Event_CloseWindow
   
    Select EventWindow()
     Case 0
      Break
     Case 1 
       CloseWindow(1)
     Case 9
       CloseWindow(1)

    EndSelect  
   
  EndSelect

ForEver

End 





lire:
If ReadFile(1, file$) 
      length = Lof(1)                            ; Lit la taille en octets du fichier 
      *MemoryID = AllocateMemory(length)         ; alloue un bloc mémoire de la taille du fichier
      If *MemoryID
        ReadData(1, *MemoryID, length)   ; Lit les données du fichier et les place dans le bloc mémoire
      EndIf
      CloseFile(1)
    Resultat = CatchImage(1, *MemoryID, length)
If resultat=0
  Debug("Erreur")
  End
EndIf

  OpenWindow(1, 0, 0, ImageWidth(1), ImageHeight(1), "MutanteKey");, #PB_Window_BorderLess)
  ImageGadget(#PB_Any, 0,0,300,200,ImageID(1))
  
EndIf


Return

Re: Les gadgets

Publié : mar. 28/juin/2011 13:46
par Kwai chang caine
La gestion des raccourcis clavier se detecte par un evenement menu (Fallait le deviner :lol:)
Et je ne vois pas d'evenement menu dans ton code, c'est peut etre ça :roll:

Code : Tout sélectionner

AddKeyboardShortcut(#FormXXX, #PB_Shortcut_Return, 13) ; Pour Return

; Dans la boucle d'attente

Case #PB_Event_Menu
   
 If EventMenu() = 13

 EndIf

Re: Les gadgets

Publié : mar. 28/juin/2011 14:36
par SPH
Ho, je comprend rien, ca m'ennnnnerve !! (j'en appelle a votre bon coeur)

J'ai ca et je ne sais pas rajouter un ESC pour fermer l'image et un - et + (ainsi que la roulette de la souris) pour rapeticir ou agrandir l'image. Le zoom, quelqu'un me l'a deja donné mais je n'arrive pas a l'integrer dans ce code :

Code : Tout sélectionner

UseJPEGImageDecoder()

OpenWindow(0, 0, 0, 500,400, "PanelGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) 
    PanelGadget     (0, 8, 8, 484, 384)
    AddGadgetItem (0, -1, "L")
      ExplorerListGadget(8, 10, 108, 460, 244, "*.jpg")
      SetGadgetAttribute(8, #PB_Explorer_List,2)
    AddGadgetItem (0, -1,"C")
       PanelGadget (1, 10, 10, 460, 340)
         AddGadgetItem(1, -1, "C")
         AddGadgetItem(1, -1, "D")
       CloseGadgetList()
    AddGadgetItem (0, -1, "C")
    CloseGadgetList()
    
    
Repeat
      
  Select WaitWindowEvent()
    
  Case #PB_Event_Gadget
   
   Select EventGadget()
     
    Case 8 ; Play
          If EventType() = 2
            file$=GetGadgetText(8)+GetGadgetItemText(8, GetGadgetState(8))
            Gosub lire
          EndIf
          
      EndSelect  
   
  Case #PB_Event_CloseWindow
   
    Select EventWindow()
     Case 0
      Break
     Case 1 
       CloseWindow(1)

    EndSelect  
   
  EndSelect

ForEver

End 





lire:
If ReadFile(1, file$) 
      length = Lof(1)                            ; Lit la taille en octets du fichier 
      *MemoryID = AllocateMemory(length)         ; alloue un bloc mémoire de la taille du fichier
      If *MemoryID
        ReadData(1, *MemoryID, length)   ; Lit les données du fichier et les place dans le bloc mémoire
      EndIf
      CloseFile(1)
    Resultat = CatchImage(1, *MemoryID, length)
If resultat=0
  Debug("Erreur")
  End
EndIf

  OpenWindow(1, 0, 0, ImageWidth(1), ImageHeight(1), "MutanteKey");, #PB_Window_BorderLess)
  ImageGadget(#PB_Any, 0,0,300,200,ImageID(1))
  
EndIf


Return

Re: Les gadgets

Publié : mar. 28/juin/2011 15:50
par Kwai chang caine
Il faut que je parte, donc j'ai peur que pour moi, si je peux t'aider ce ne soit pas avant demain :(

Mais d'ou tu le sort ce

Code : Tout sélectionner

If EventType() = 2
Comment tu fais pour faire apparaitre ta deuxieme fenetre ???
Celle que tu veux fermer avec un ESCAPE ???

Re: Les gadgets

Publié : mar. 28/juin/2011 15:57
par boddhi
@SPH
Pour fermer ta fenêtre 1...

Après

Code : Tout sélectionner

Select WaitWindowEvent()
insère

Code : Tout sélectionner

    Case #PB_Event_Menu
      Select EventMenu()
        Case 1000 ; Où 1000 est la valeur définie avec AddKeybordShortcut (voir plus bas)
          CloseWindow(1)
      EndSelect
et après

Code : Tout sélectionner

ImageGadget(#PB_Any, 0,0,300,200,ImageID(1))
insère

Code : Tout sélectionner

AddKeyboardShortcut(1,#PB_Shortcut_Escape,1000)
PS : Un petit conseil, utilise de préférence les constantes PB prédéfinies. De même, utilise des constantes pour numéroter tes fenêtres et gadgets.

Re: Les gadgets

Publié : mar. 28/juin/2011 16:02
par SPH
Merci boddhi, c'est une bonne nouvelle ! :wink:

Re: Les gadgets

Publié : mar. 28/juin/2011 16:03
par boddhi
@ KCC
EventType()=2 => EventType()=#PB_EventType_LeftDoubleClick

Re: Les gadgets

Publié : mar. 28/juin/2011 16:11
par Kwai chang caine
Merci Boddhi, c'est vrai ça SPH, c'est deja bien assez compliqué d'essayer de comprendre le code d'un autre sans que tu remplaces la valeur de chaque constantes :lol:

Re: Les gadgets

Publié : mar. 28/juin/2011 16:13
par boddhi
SPH a écrit :Merci boddhi, c'est une bonne nouvelle ! :wink:
Le plus gros du boulot était déjà fait... :wink:

Pour tes boutons + et -, place impérativement

Code : Tout sélectionner

  ButtonGadget(101,10,10,20,20,"+")
  ButtonGadget(102,30,10,20,20,"-")
avant

Code : Tout sélectionner

ImageGadget(#PB_Any,0,0,300,200,ImageID(1))
[EDIT] Pour la gestion de la molette-souris, je ne sais gérer que sous Windows et je crois me souvenir que tu es sous Linux, non ?

Re: Les gadgets

Publié : mar. 28/juin/2011 16:17
par SPH
Merci pour tout boddhi. 8O

Re: Les gadgets

Publié : mar. 28/juin/2011 16:24
par boddhi
:wink:

Pour la souris, je ne sais gérer que sous Windows