SpinGadget Wheel

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

SpinGadget Wheel

Message par kernadec »

bonjour
Petit essai SpinGadget et wheelmouse inspire du code de Fred : http://www.purebasic.fr/english/viewtop ... 12&t=52992

Cordialement

Code : Tout sélectionner

Procedure ScrollbarEvent()
  Debug "Date: "+GetGadgetState(0)+"/"+GetGadgetState(1)+"/"+GetGadgetState(2)
EndProcedure

If OpenWindow(0, 0, 0, 160, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  SpinGadget     (0, 20, 20, 36, 20, 1, 31)
  SetGadgetState (0, 1) : SetGadgetText(0, "28")        ; définit la valeur initiale du jour
  SpinGadget     (1, 60, 20, 36, 20, 1, 12)
  SetGadgetState (1, 1) : SetGadgetText(1, "9")         ; définit la valeur initiale du mois
  SpinGadget     (2, 100, 20, 56, 20, 2000, 2050)
  SetGadgetState (2, 2013) : SetGadgetText(2, "2013")   ; définit la valeur initiale de l'année
  SetActiveGadget(0)
  BindGadgetEvent(0, @ScrollbarEvent())
  BindGadgetEvent(1, @ScrollbarEvent())
  BindGadgetEvent(2, @ScrollbarEvent())
  Repeat
    Evenement = WaitWindowEvent()  ;SpinGadget wheel mouse
    If Evenement = #PB_Event_Gadget
      If EventGadget() = 0
        SetGadgetText(0,Str(GetGadgetState(0)))
      EndIf
      If EventGadget() = 1
        SetGadgetText(1,Str(GetGadgetState(1)))
      EndIf
      If EventGadget() = 2
        SetGadgetText(2,Str(GetGadgetState(2)))
      EndIf
    EndIf
  Until Evenement = #PB_Event_CloseWindow
EndIf
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: SpinGadget Wheel

Message par Backup »

pas mal :)

autant avoir la date du jour en premier :

Code : Tout sélectionner

Procedure ScrollbarEvent()
	Debug "Scroll: "+GetGadgetState(0)
EndProcedure


If OpenWindow(0, 0, 0, 160, 70, "SpinGadget", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
	d$=FormatDate("%dd/%mm/%yyyy", Date())
	
	SpinGadget     (0, 20, 20, 36, 20, 1, 31)
	SetGadgetState(0, val(stringfield(d$,1,"/")))        ; définit la valeur initiale du jour
	SpinGadget     (1, 60, 20, 36, 20, 1, 12)
	SetGadgetState(1, val(stringfield(d$,2,"/")) )      ; définit la valeur initiale du mois
	SpinGadget     (2, 100, 20, 56, 20, 2000, 2050)
	SetGadgetState(2,val(stringfield(d$,3,"/")) )  ; définit la valeur initiale de l'année
	
	SetActiveGadget(0)
	SetActiveGadget(1)
	SetActiveGadget(2)
	BindGadgetEvent(0, @ScrollbarEvent())
	Repeat
		Evenement = WaitWindowEvent()  ;SpinGadget wheel mouse
		If Evenement = #PB_Event_Gadget
			If EventGadget() = 0
				SetGadgetText(0,Str(GetGadgetState(0)))
			EndIf
			If EventGadget() = 1
				SetGadgetText(1,Str(GetGadgetState(1)))
			EndIf
			If EventGadget() = 2
				SetGadgetText(2,Str(GetGadgetState(2)))
			EndIf
		EndIf
	Until Evenement = #PB_Event_CloseWindow
EndIf; EPB
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: SpinGadget Wheel

Message par MLD »

Super Kernadec
Avatar de l’utilisateur
falsam
Messages : 7324
Inscription : dim. 22/août/2010 15:24
Localisation : IDF (Yvelines)
Contact :

Re: SpinGadget Wheel

Message par falsam »

Merci Kernadec pour cette démonstration mettant en oeuvre la fonction BindGadgetEvent() qui n’existait pas dans la version 5.11 de Pure Basic.
Configuration : Windows 11 Famille 64-bit - PB 6.20 x64 - AMD Ryzen 7 - 16 GO RAM
Vidéo NVIDIA GeForce GTX 1650 Ti - Résolution 1920x1080 - Mise à l'échelle 125%
Avatar de l’utilisateur
blendman
Messages : 2017
Inscription : sam. 19/févr./2011 12:46

Re: SpinGadget Wheel

Message par blendman »

oui, les BiendEvent() c'est vraiment intéressant dans certains cas (pour les scrollbar, scrollarea etc ).

Tu devrais mettre cette astuces dans "trucs et astuces", plutôt qu'en débutant ;).
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: SpinGadget Wheel

Message par Kwai chang caine »

blendman a écrit :oui, les BiendEvent() c'est vraiment intéressant dans certains cas (pour les scrollbar, scrollarea etc ).
Merci KERNADEC 8)
Juste un truc qui m'a encore échappé et si "quinquin" y peut m'expliquer :oops:
Quel est la difference avec une callback puisque je suppose qu'on peut faire la même chose avec elle ??
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: SpinGadget Wheel

Message par Backup »

Kwai chang caine a écrit :Quel est la difference avec une callback puisque je suppose qu'on peut faire la même chose avec elle ??
peut etre le multi OS ??
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: SpinGadget Wheel

Message par Kwai chang caine »

D'accord en fin de compte la même chose que la callback mais en natif :D
Merci SPOCK 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: SpinGadget Wheel

Message par Backup »

je dirai que le callback est plus generale ...

alors que le BindGadgetEvent(0, .... est ciblé sur un gadget ...

les callback sont utiles pour tout les evenements de deplacement, souris, redraw etc ... :)
Avatar de l’utilisateur
Kwai chang caine
Messages : 6989
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: SpinGadget Wheel

Message par Kwai chang caine »

Oui exact..j'avais pas saisi le caractere de la gestion unique de chaque gadget...
Et ben....au fil des années ça devient drolement pointu PB... 8O
Ses détracteurs ne pourront plus "s'assoir dessus" pour le dénigrer :mrgreen:
Encore merci :wink:
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Répondre