Les gadgets

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les gadgets

Message 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 :?
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Les gadgets

Message 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: :|

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les gadgets

Message 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:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Geo Trouvpatou
Messages : 471
Inscription : dim. 23/déc./2007 18:10

Re: Les gadgets

Message 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.
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Les gadgets

Message 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

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les gadgets

Message 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
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Les gadgets

Message 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

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les gadgets

Message 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 ???
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Les gadgets

Message 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.
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Les gadgets

Message par SPH »

Merci boddhi, c'est une bonne nouvelle ! :wink:

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Les gadgets

Message par boddhi »

@ KCC
EventType()=2 => EventType()=#PB_EventType_LeftDoubleClick
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Les gadgets

Message 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:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Les gadgets

Message 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 ?
Dernière modification par boddhi le mar. 28/juin/2011 16:22, modifié 1 fois.
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: Les gadgets

Message par SPH »

Merci pour tout boddhi. 8O

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
boddhi
Messages : 604
Inscription : lun. 26/avr./2010 16:14
Localisation : S 48° 52' 31'' / O 123° 23' 33''

Re: Les gadgets

Message par boddhi »

:wink:

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