CalendarGadget (Enlever les deux boutons)

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

CalendarGadget (Enlever les deux boutons)

Message 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
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: CalendarGadget (Enlever les deux boutons)

Message 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 
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: CalendarGadget (Enlever les deux boutons)

Message par MLD »

Merci Kernadec
Je regarde ceci, mais il doit avoir plus complet
Mesa
Messages : 1126
Inscription : mer. 14/sept./2011 16:59

Re: CalendarGadget (Enlever les deux boutons)

Message 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.
Avatar de l’utilisateur
kernadec
Messages : 1606
Inscription : ven. 25/avr./2008 11:14

Re: CalendarGadget (Enlever les deux boutons)

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: CalendarGadget (Enlever les deux boutons)

Message 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
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: CalendarGadget (Enlever les deux boutons)

Message 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"
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: CalendarGadget (Enlever les deux boutons)

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: CalendarGadget (Enlever les deux boutons)

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: CalendarGadget (Enlever les deux boutons)

Message 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.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
MLD
Messages : 1124
Inscription : jeu. 05/févr./2009 17:58
Localisation : Bretagne

Re: CalendarGadget (Enlever les deux boutons)

Message par MLD »

@ Ar-s
SQlite trop lourd pour une petite appli comme celle-ci. J'ai une autre méthode. :wink: :lol:
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: CalendarGadget (Enlever les deux boutons)

Message 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 :)
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)]
Répondre