Sélection DateGadget sans effet

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Sélection DateGadget sans effet

Message par omega »

Bonsoir et bonne année à tous !

Voilà: j'ai un DateGadget qui ne répond pas. Quand je sélectionne une date sur le calendrier, celle-ci ne s'affiche pas (le gadget garde toujours la date initiale). J'ai remarqué que si je ne touche pas au gadget (dans le code pb), la sélection marche bien, mais il suffit de faire un :

Code : Tout sélectionner

SetGadGetText(#MaDate,"01/01/2013")
pour que toute sélection manuelle (après l'exécution de cette instruction) ne marche plus.

Quelqu'un a une idée?

Merci

Code : Tout sélectionner

OpenWindow(0, 0, 0, 800, 600, "Test dater", #PB_Window_SystemMenu)
DateGadget(#MaDate,100,50,100,20)
wDate$="01/01/2013"
SetGadGetText(#MaDate,wDate$)
Repeat
Event = WaitWindowEvent()
Until Event = #PB_Event_CloseWindow
Essayez de sélectionner une date
Win7 (x64) 64 bits Pb 5.72
Patrick88
Messages : 1564
Inscription : mer. 21/janv./2004 18:24

Re: Sélection DateGadget sans effet

Message par Patrick88 »

SetGadgetText() : Change le masque du gadget

donc en forçant l'affichage à 01/01/2013, c'est toujours cette datte qui s'affiche.
je pense que ce n'est pas ainsi / pas avec cette fonction que tu peux changer une date dans le calendrier
voir du coté de FormatDate()...

pat
Avatar de l’utilisateur
Micoute
Messages : 2583
Inscription : dim. 02/oct./2011 16:17
Localisation : 35520 La Mézière

Re: Sélection DateGadget sans effet

Message par Micoute »

Code : Tout sélectionner

Enumeration
	#Fenetre_principale
EndEnumeration

Enumeration
	#Bouton_Obtenir
	#Bouton_Definir
EndEnumeration

Structure HEURESYSTEME
	wAnnee.w
	wMois.w
	wJourDeSemaine.w
	wJour.w
	wHeure.w
	wMinute.w
	wSeconde.w
	wMilliSecondes.w
EndStructure

OpenWindow(#Fenetre_principale,200,200,200,200,"test",#PB_Window_SystemMenu)
  Choix1=CreateWindowEx_(#Fenetre_principale,"SysDateTimePick32","",#WS_CHILD|#WS_VISIBLE|12+2,10,10,120,25,WindowID(0),0,GetModuleHandle_(#Fenetre_principale),0)
  ButtonGadget(#Bouton_Obtenir,10,160,60,24,"Obtenir")
  ButtonGadget(#Bouton_Definir,80,160,60,24,"Définir")
 
Repeat 
    Select WaitWindowEvent() 
        Case #PB_Event_CloseWindow 
            Quitter = #True
    
    
        Case #PB_Event_Gadget 
            Select EventGadget() 
                Case #Bouton_Obtenir 
                    SendMessage_(Choix1,#DTM_GETSYSTEMTIME,0,@d.HEURESYSTEME)
                    Debug "Date  : "+ RSet(Str(d\wJour),2,"0")+"/"+ RSet(Str(d\wMois),2,"0") + "/" + Str(d\wAnnee)
                    Debug "Heure  : "+ RSet(Str(d\wHeure),2,"0") + ":" + RSet(Str(d\wMinute),2,"0") + ":"+ RSet(Str(d\wSeconde),2,"0")
                    
                Case #Bouton_Definir
                    d\wJour = 1 ; jour par défaut
                    d\wMois = 1 ; moise par défaut
                    d\wAnnee = 2013 ; année par défaut
                    d\wHeure = 9
                    d\wMinute = 50
                    d\wSeconde = 0
                    SendMessage_(Choix1,#DTM_SETSYSTEMTIME,0,@d.HEURESYSTEME)

            EndSelect
    EndSelect 
Until Quitter = #True

Code : Tout sélectionner

;Application Bibliothèque Date

Dim JourDeSemaine.s(6)
Dim Mois.s(11)

For a=0 To 6
  Read.s JourDeSemaine(a)
Next

Restore Mois
For b=0 To 11
	Read.s Mois(b)
Next

DataSection
	Data.s "Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"
	Mois:
	Data.s "Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"
EndDataSection

date.s=FormatDate("%dd/%MM/%yyyy", Date())
jour.l=DayOfWeek(Date())
Mois= Month(Date())
resultat.s = Mois(Mois-1)

texte.s="Aujourd'hui nous sommes le  "+JourDeSemaine(jour)+" "+Str(Day(Date()))+" "+resultat+" "+Str(Year(Date()))


MessageRequester("Date",texte,0)
J'espère que cela va t'aider.
Microsoft Windows 10 Famille 64 bits : Carte mère : ASRock 970 Extreme3 R2.0 : Carte Graphique NVIDIA GeForce RTX 3080 : Processeur AMD FX 6300 6 cœurs 12 threads 3,50 GHz PB 6.20 LTS (x64)
Un homme doit être poli, mais il doit aussi être libre !
Malo
Messages : 79
Inscription : dim. 09/août/2009 17:48

Re: Sélection DateGadget sans effet

Message par Malo »

Cela peut-il répondre à ta demande ?

Code : Tout sélectionner

Enumeration
     #MaDate   
        
EndEnumeration



OpenWindow(0, 0, 0, 800, 600, "Test dater", #PB_Window_SystemMenu)
DateGadget(#MaDate,100,50,100,20)
wDate$="13/01/01";année mois jour
wDate=ParseDate("%yy/%mm/%dd", wDate$) 
SetGadgetState(#MaDate,wDate)

Repeat
        Event = WaitWindowEvent()

        
Until Event = #PB_Event_CloseWindow

Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Sélection DateGadget sans effet

Message par omega »

Merci à tous

Je pense que la solution de Malo me conviendra.

J'essayerai plus tard (je suis loin de mon pc)

Merci encore à tous
Win7 (x64) 64 bits Pb 5.72
Avatar de l’utilisateur
omega
Messages : 633
Inscription : sam. 26/nov./2011 13:04
Localisation : Alger

Re: Sélection DateGadget sans effet

Message par omega »

Bonsoir

Finalement, c'est la solution de Malo que j'ai testée. Et ça marche très bien.
Merci beaucoup à toi Malo et à tous ceux qui ont répondu à ma demande.
Win7 (x64) 64 bits Pb 5.72
Répondre