PureBasic

Forums PureBasic
Nous sommes le Dim 21/Juil/2019 14:20

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 
Auteur Message
 Sujet du message: mettre plusieurs CallBack dans un programme
MessagePosté: Sam 24/Avr/2004 19:09 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4312
Localisation: Clermont ferrand OU Olsztyn
Salut,

j'ai fait une petite lib pour pouvoir mettre plusiseurs callback dans un prog.

le code de la lib est le suivant :
Code:
Declare AllCallBack(hWnd, uMsg, wParam, lParam)

ProcedureDLL UseCallBack_Init()
  NewList CallBackList.l()
  SetWindowCallback(@AllCallBack())
EndProcedure

ProcedureDLL AddCallBack(Nom_Procedure.l) ; Ajouter un CallBack
  AddElement(CallBackList())
  CallBackList() = Nom_Procedure
EndProcedure

Procedure.l AllCallBack(hWnd, uMsg, wParam, lParam)
  ReturnValue = #PB_ProcessPureBasicEvents
  ResetList(CallBackList())
  While NextElement(CallBackList())
    Retour = CallWindowProc_(CallBackList(), hWnd, uMsg, wParam, lParam)
    If Retour <> #PB_ProcessPureBasicEvents
      ReturnValue = Retour
    EndIf
  Wend
  ProcedureReturn ReturnValue
EndProcedure


et voici un exemple :
Code:
Procedure.l WinCallback(WindowID, Message, wParam, lParam)
  ReturnValue = #PB_ProcessPureBasicEvents
  If Message = #WM_SIZE
    Select wParam
      Case #SIZE_RESTORED
        MessageRequester(" info", "maximimizé", 0)
    EndSelect
  EndIf
  ProcedureReturn ReturnValue
EndProcedure

Procedure.l WinCallback2(WindowID, Message, wParam, lParam)
  ReturnValue = #PB_ProcessPureBasicEvents
  If Message = #WM_SIZE
    Select wParam
      Case #SIZE_MINIMIZED
        MessageRequester( "info", "minimizé", 0)
    EndSelect
  EndIf
  ProcedureReturn ReturnValue
EndProcedure


If OpenWindow(0, 0, 0, 300, 300, #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget | #PB_Window_SizeGadget, "Test") = 0 Or CreateGadgetList(WindowID()) = 0
  End
EndIf

AddCallBack(@WinCallback())
AddCallBack(@WinCallback2())

Repeat
  Event = WaitWindowEvent()
 
Until Event = #PB_EventCloseWindow


tout ceci est dispo sur mon site ;)

j'en profite pour signaler que j'ai corrigé mes lib ToolTip et ButtonImageGadgetEx qui utilisent dorénavent ce principe vu qu'elle ont besion d'un callback et que cela empêchait d'en mettre un dans le code

_________________
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Sam 24/Avr/2004 19:25 
Hors ligne
Avatar de l’utilisateur

Inscription: Ven 13/Fév/2004 0:57
Messages: 3702
Très intéressant pour faire des libs :)

il manque UseCallBack_Init() dans ton exemple!


Haut
 Profil  
Répondre en citant le message  
 Sujet du message:
MessagePosté: Dim 25/Avr/2004 17:29 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 28/Jan/2004 20:58
Messages: 4312
Localisation: Clermont ferrand OU Olsztyn
pas besoin de le lancer ;)
il se lance tout seul quand on veut utiliser la lib, c'est beau la technologie :D vive TailBite

_________________
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye