Page 1 sur 1

CalendarGadget (Enlever les deux boutons)

Publié : mar. 31/janv./2012 17:26
par MLD
Bonjour a tous
Pour une application j'aimerai pouvoir enlever les deux boutons de changement de date.
Il me semble que LSI a travaillé sur le sujet des "CalendarGadget" une petite aide serait la bienvenue.
Je suis aussi preneur de l'ensemble des "API" sur le sujet.
Merci.
Michel

Re: CalendarGadget (Enlever les deux boutons)

Publié : mar. 31/janv./2012 19:11
par kernadec
salut MLD
Dans code archive il y a ce code...

Cordialement

Code : Tout sélectionner

; German forum: http://www.purebasic.fr/german/archive/viewtopic.php?t=2997&highlight=
; Author: Andreas (updated for PB4.00 by blbltheworm)
; Date: 03. December 2003
; OS: Windows
; Demo: No

#MCM_GETCURSEL = $1001 
#Auswahl=1 
#Abbruch = 2 

Structure InitCommon 
  dwSize.l 
  dwICC.l 
EndStructure 

my.InitCommon 
my\dwSize = 8 
my\dwICC = $100 

InitCommonControlsEx_(@my) 

hWnd=OpenWindow(0,0,0,640,480.0,"API-Kalender",#PB_Window_SystemMenu|#PB_Window_ScreenCentered) 
If hWnd=0 Or CreateGadgetList(hWnd)=0:End:EndIf 

hCal=CreateWindowEx_(0,"SysMonthCal32","Kalender",#WS_CHILD|#WS_VISIBLE,10,80,600,300,hWnd,0,GetModuleHandle_(0),0) 
;ein wenig Farbe ins Spiel bringen 
SendMessage_(hCal,4106,0,$800000);MCM_SC_BACKGROUND 
SendMessage_(hCal,4106,4,$800000);MCM_SC_MONTHBACK 
SendMessage_(hCal,4106,2,$0000FF);MCM_SC_TITEL 
SendMessage_(hCal,4106,1,$00FFFF);MCM_SC_TEXT 
SendMessage_(hCal,4106,3,$00FFFF);MCM_SC_TITELTEXT 

ButtonGadget(#Auswahl,10,10,50,20,"Datum") 
ButtonGadget(#Abbruch,10,40,50,20,"Abbruch") 


Repeat 
  EventID.l = WaitWindowEvent() 
  
  If EventID = #PB_Event_Gadget 
    Select EventGadget() 
      Case #Auswahl 
        SendMessage_(hCal,#MCM_GETCURSEL,0,@time.SYSTEMTIME ) 
        year=time\wYear 
        month=time\wMonth 
        day=time\wDay 
        info.s = Str(day)+"."+Str(month)+"."+Str(year) 
        MessageRequester("",info,0) 
      Case #Abbruch 
        End 
    EndSelect 
  EndIf 
Until EventID = #PB_Event_CloseWindow 
End 

Re: CalendarGadget (Enlever les deux boutons)

Publié : mer. 01/févr./2012 9:43
par MLD
Merci Kernadec
Je regarde ceci, mais il doit avoir plus complet

Re: CalendarGadget (Enlever les deux boutons)

Publié : mer. 01/févr./2012 17:17
par Mesa
Je pense que la solution se trouve dans l'étude de cette page :

http://msdn.microsoft.com/en-us/library ... 85%29.aspx

MCGIP_NEXT:The next button.
MCGIP_PREV:The previous button.

Mesa.

Re: CalendarGadget (Enlever les deux boutons)

Publié : jeu. 02/févr./2012 3:28
par kernadec
bonjour MLD
peut être cette solution?

Cordialement

Code : Tout sélectionner

OpenWindow(0, 0, 0, 226, 124, "   CALENDRIER  ", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(0,$DCDCDC)
CalendarGadget(1,2,2,220,118)
DisableGadget(1, 1)
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow

Re: CalendarGadget (Enlever les deux boutons)

Publié : jeu. 02/févr./2012 10:38
par Backup
petite variante ! :)

Code : Tout sélectionner

Enumeration
    #window
    #canvas
    #calendrier
EndEnumeration

OpenWindow(#window, 0, 0, 226, 200, "   CALENDRIER  ", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(#window,$DCDCDC)
CalendarGadget(#calendrier,2,2,220,200)
CanvasGadget(#canvas,0,0,226,40)
DisableGadget(#calendrier, 1)
jour.s="Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi "
StartDrawing(CanvasOutput(#canvas))      
    Box(0,0,226,25,rgb(0,0,0))
    Date$ = FormatDate("%dd/%mm/%yyyy", Date())
    jour$=stringfield(jour.s,DayOfWeek(Date())+1," ")
    DrawText(0,0,jour$+" "+date$)
StopDrawing()
Repeat:Until WaitWindowEvent()=#PB_Event_CloseWindow
[reedit] petite correction ;)

code un peu plus "propre"

Code : Tout sélectionner


Enumeration
    #window
    #canvas
    #calendrier
EndEnumeration

Declare  calendar_sans_bouton()


OpenWindow(#window, 0, 0, 226, 200, "   CALENDRIER  ", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
SetWindowColor(#window,$DCDCDC)
calendar_sans_bouton()

Repeat
Until WaitWindowEvent()=#PB_Event_CloseWindow

procedure calendar_sans_bouton()
    if IsGadget(#calendrier)=0
        CalendarGadget(#calendrier,2,2,220,200)
        CanvasGadget(#canvas,0,0,226,40)
        DisableGadget(#calendrier, 1)
        else
        jour.s="Dimanche Lundi Mardi Mercredi Jeudi Vendredi Samedi "
        StartDrawing(CanvasOutput(#canvas))
            Box(0,0,226,25,rgb(0,0,0))
            Date$ = FormatDate("%dd/%mm/%yyyy", Date())
            jour$=stringfield(jour.s,DayOfWeek(Date())+1," ")
            DrawText(0,0,jour$+" "+date$)
        StopDrawing()
    endif
endprocedure
;EBP

Re: CalendarGadget (Enlever les deux boutons)

Publié : jeu. 02/févr./2012 11:04
par MLD
Merci a tous.
Il semble que ce gadget, qui en fait est une lib incluse dans window ne coresponde pas a ce que je cherche,impossible d'inclure les jours feriers, alarme ect.
Je vais donc programmer un calendrier a ma "sauce"

Re: CalendarGadget (Enlever les deux boutons)

Publié : jeu. 02/févr./2012 13:25
par Ar-S
Je suis en plein dans la gestion de calendrier aussi. Je refais entièrement mon logiciel de gestion d'anniv pour le rendre plus : joli/simple/paramétrable pour faire un pense bête vers tous les évènements, pas seulement anniv et fête.
Preview :
Image

Si tu souhaites partager tes travaux concernant un calendar perso, fais moi signe.

Re: CalendarGadget (Enlever les deux boutons)

Publié : ven. 03/févr./2012 11:02
par MLD
Bonjour Ar-S
En fait ce que je cherche a programmer , c'est un agenda, pour prises de rendez-vous. Un peu comme les éphémérides qui sont sur les bureaux.
Je mettrais ce code sur le fofo pour la partie calendrier. Pour l'ensemble si cela t'intérêsse, je te le donnerais en MP. :lol:
Le projet avance
Michel

Re: CalendarGadget (Enlever les deux boutons)

Publié : ven. 03/févr./2012 11:23
par Ar-S
MLD a écrit :Bonjour Ar-S
En fait ce que je cherche a programmer , c'est un agenda, pour prises de rendez-vous. Un peu comme les éphémérides qui sont sur les bureaux.
Je mettrais ce code sur le fofo pour la partie calendrier. Pour l'ensemble si cela t'intérêsse, je te le donnerais en MP. :lol:
Le projet avance
Michel
Avec plaisir.
Vas-tu partir avec du SQlite ou simplement utiliser du fichier texte ? (commande pref native ?)
Je n'ai pas encore trouvé la méthode la plus pertinente de "classement des données" en pref classique, je testerai l'utilisation de sqlite pour croiser les données si je n'arrive à rien en préférence classique.

Re: CalendarGadget (Enlever les deux boutons)

Publié : ven. 03/févr./2012 11:50
par MLD
@ Ar-s
SQlite trop lourd pour une petite appli comme celle-ci. J'ai une autre méthode. :wink: :lol:

Re: CalendarGadget (Enlever les deux boutons)

Publié : ven. 03/févr./2012 21:52
par Le Soldat Inconnu
Moi, pour mon agenda, je gère de la préférence classique. C'est bien plus simple. Et ma BDD est sous forme de liste chainée :)