Page 1 sur 1

qui peux m'expliquer la commande callback svp

Publié : lun. 18/avr./2005 21:24
par bernard13
bonsoir
qui peux m'expliquer la commande callback svp


merci

Publié : lun. 18/avr./2005 21:27
par julien

Code : Tout sélectionner

....
Pour programmeurs expérimentés seulement. Cette fonction est seulement disponible sous Microsoft Windows. Les évènement classiques devrait toujours être gérés avec les commandes WaitWindowEvent() ou WindowEvent(). Cette commande permet d'accéder directement à la callback utilisé par Windows pour gérér les évènements recus par l'application...

Publié : lun. 18/avr./2005 21:27
par Le Soldat Inconnu
en fait, la commande WindowEvent ou WaitWindowEvent ne retourne pas tous les évènements mais seulement quelques un

tandis que la callback permet de voir tous les évènements.
c'est particulièrement utile dès que l'on touche à la personnalisation de l'apparence de gadget par exemple. car les évènements qui disent que l'on dessine un gadget ne sont pas donné avec WindowEvent ou WaitWindowEvent

Publié : mar. 19/avr./2005 7:33
par bernard13
on peux alors modifier les gadgets
et crée des skin

Publié : mar. 19/avr./2005 8:03
par cederavic
Voilas, mais ça sert a pas mal d'autre choses aussi ;)

Publié : mar. 19/avr./2005 9:54
par bernard13
j'ai compris pour mettre de la couleur
je bosse sur un petit jeu
voici un bout de mon code
ne regarder pas trop c'est mal disposer
mais je me comprend moi ...

Code : Tout sélectionner



Procedure.l WindowCallBack(WindowID.l, Message.l, wParam.l, lParam.l) 
  ReturnValue.l = #PB_ProcessPureBasicEvents
  ;
  ReturnValue = PureCOLOR_CallBack(WindowID, Message, wParam, lParam, ReturnValue) 
  ;
  ProcedureReturn ReturnValue 
EndProcedure


Enumeration
 #win_0
EndEnumeration


Enumeration
 #nom_joueur
 #string_joueur
 #bouton_valider
 #bouton_annuler
EndEnumeration

Global FontID1
FontID1 = LoadFont(1, "Arial", 12, #PB_Font_Bold)
Global fontID2
fontID2 = LoadFont(2,"arial",11,#pb_font_bold)



Procedure nouveau()
 If OpenWindow(#win_0,0,0,300,100,#PB_Window_SystemMenu|#PB_Window_ScreenCentered| ,"Nouveau jeu")
  SetWindowCallback(@WindowCallBack()) 
 PureCOLOR_SetWindowColor(#win_1,RGB(9,194,247))

 If CreateGadgetList(WindowID())
 TextGadget(#nom_joueur, 80, 5,130,20,"Nom du joueur :",#PB_Text_Center)
 PureCOLOR_SetGadgetColor(#nom_joueur, RGB(249,37,55),RGB(9,194,247))
 SetGadgetFont(#nom_joueur,fontid1)
 StringGadget(#string_joueur,25,30,250,25,"")
 SetGadgetFont(#string_joueur,fontID2)
 ButtonGadget(#bouton_valider,25,65,90,30,"Valider")
 SetGadgetFont(#bouton_valider,fontID1)
 PureCOLOR_SetButtonColor(#bouton_valider, RGB(249,37,55),RGB(236,233,216))
 ButtonGadget(#bouton_annuler,185,65,90,30,"Annuler")
 SetGadgetFont(#bouton_annuler,fontID1)
 PureCOLOR_SetButtonColor(#bouton_annuler, RGB(249,37,55),RGB(236,233,216))

 EndIf
 
 
 
 EndIf
 EndProcedure
 
 nouveau()
 
 Repeat
  event=WaitWindowEvent()
   Select event
    Case #pb_eventclosewindow
      ferme_0=1
      EndSelect
  Until ferme_0=1
  End