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

Me trompe-je ????
C'est vrai, je me suis fait moi aussi cette remarque, en etant étonné de te voir poser des question de KCC

En tout cas jamais j'aurais cru pouvoir t'aider, vu le niveau que tu as

J'suis drolement fier, et je te remercie de poser des questions, que enfin je peux repondre

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

Me trompe-je ????

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 ?

Re: Les gadgets
Publié : mar. 28/juin/2011 8:47
par Kwai chang caine
Ca casse le myth hein ?
Ouaih un peu

Mais je t'aime bien quand meme
En attendant des XOR et des MOV c'est déjà deux instructions de plus que moi

Re: Les gadgets
Publié : mar. 28/juin/2011 10:46
par Geo Trouvpatou
Salut.
SPH a écrit :
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

)
Et je ne vois pas d'evenement menu dans ton code, c'est peut etre ça
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
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
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
insère
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 !

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

Re: Les gadgets
Publié : mar. 28/juin/2011 16:13
par boddhi
SPH a écrit :Merci boddhi, c'est une bonne nouvelle !

Le plus gros du boulot était déjà fait...
Pour tes boutons + et -, place
impérativement Code : Tout sélectionner
ButtonGadget(101,10,10,20,20,"+")
ButtonGadget(102,30,10,20,20,"-")
avant
[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.

Re: Les gadgets
Publié : mar. 28/juin/2011 16:24
par boddhi
Pour la souris, je ne sais gérer que sous Windows