Hallo, ihr Lieben!
Es gibt doch in  "Code, Tipps und Tricks" dieses wunderbare Date64-Modul. Vielen Dank an alle beteiligten Programmierer! Wie bekomme ich nun eine Zusammenarbeit mit dem Calendar- und DateGadget zustande? Diese unterstützen natürlich nicht den stark erweiterten Datumsbereich.
Kann jemand helfen?
Viele Grüße aus Berlin sendet
Thomas
			
			
									
									Date64-Modul und das CalendarGadget
Date64-Modul und das CalendarGadget
Finde Gelassenheit bei Dingen, die du nicht ändern kannst!
						Re: Date64-Modul und das CalendarGadget
Mit dem Date64-Modul kenne ich mich nicht aus, aber ich kann dir eine Lösung für das Datumsproblem beim CalendarGadget und DateGadget geben.Purethom hat geschrieben:mit dem Calendar- und DateGadget zustande? Diese unterstützen natürlich nicht den stark erweiterten Datumsbereich.
Für CalendarGadget:
Code: Alles auswählen
EnableExplicit
#MCN_SELCHANGE = #MCN_FIRST + 1
#MCN_SELECT = #MCN_FIRST + 4
Procedure WinCallback(hWnd, uMsg, wParam, lParam)
  Protected *NMHDR.NMHDR
  Protected SYSTEMTIME.SYSTEMTIME
 
  Select uMsg
    Case #WM_NOTIFY
      *NMHDR = lParam
      Select *NMHDR\hwndFrom
        Case GadgetID(1)
          Select *NMHDR\code
            Case #MCN_SELECT
              SendMessage_(GadgetID(1), #MCM_GETCURSEL, 0, SYSTEMTIME)
              Debug Str(SYSTEMTIME\wDay) + "." + Str(SYSTEMTIME\wMonth) + "." + Str(SYSTEMTIME\wYear)
          EndSelect
      EndSelect
  EndSelect
 
  ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  CalendarGadget(1, 10, 10, 200, 200, Date())
 
  SetWindowCallback(@WinCallback())
 
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIfCode: Alles auswählen
EnableExplicit
Procedure WinCallback(hWnd, uMsg, wParam, lParam) 
  Protected *NMHDR.NMHDR
  Protected SYSTEMTIME.SYSTEMTIME
  
  Select uMsg
    Case #WM_NOTIFY
      *NMHDR = lParam
      Select *NMHDR\hwndFrom
        Case GadgetID(1)
          Select *NMHDR\code
            Case #DTN_DATETIMECHANGE
              SendMessage_(GadgetID(1), #MCM_GETCURSEL, 0, SYSTEMTIME)
              Debug Str(SYSTEMTIME\wDay) + "." + Str(SYSTEMTIME\wMonth) + "." + Str(SYSTEMTIME\wYear)
          EndSelect
      EndSelect
  EndSelect
  
  ProcedureReturn #PB_ProcessPureBasicEvents 
EndProcedure 
If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  DateGadget(1, 10, 10, 100, 20)
  
  SetWindowCallback(@WinCallback())
  
  Repeat
    Select WaitWindowEvent()
      Case #PB_Event_CloseWindow
        End
    EndSelect
  ForEver
EndIfViele Grüße zurück aus Berlin an Berlin.Purethom hat geschrieben:Viele Grüße aus Berlin sendet
Re: Date64-Modul und das CalendarGadget
Hallo RSBasic,
das ist ja reine WinAPI-Magie! Aber es funktioniert. Obwohl ich zugeben muss, dass ich keine Ahnung habe, wie der Code arbeitet. Aber ich werde versuchen, mir das zu erarbeiten.
In diesem Zusammenhang, lieber Ray, deine Webside ist echt der Hammer. Total informativ, speziell der WinAPI-Teil.
In diesem Sinne, vielen Dank für deine schnelle Antwort und liebe Grüße aus Berlin nach Berlin sendet
Thomas
			
			
									
									das ist ja reine WinAPI-Magie! Aber es funktioniert. Obwohl ich zugeben muss, dass ich keine Ahnung habe, wie der Code arbeitet. Aber ich werde versuchen, mir das zu erarbeiten.
In diesem Zusammenhang, lieber Ray, deine Webside ist echt der Hammer. Total informativ, speziell der WinAPI-Teil.
In diesem Sinne, vielen Dank für deine schnelle Antwort und liebe Grüße aus Berlin nach Berlin sendet
Thomas
Finde Gelassenheit bei Dingen, die du nicht ändern kannst!
						Re: Date64-Modul und das CalendarGadget
Das freut mich zu hören und dass ich dir helfen konnte. 
			
			
									
									
						Re: Date64-Modul und das CalendarGadget
Nur der Vollständigkeit halber:
Wilbert hat im englischen Forum mal eine Sammlung seiner "DateQ" Funktionen gepostet. Diese wurden von einem anderen User aufgegriffen und als Modul umgeschrieben. Ich hatte mir den Code dann auf meine Bedürfnisse angepasst und unter anderem eine Komplette Date64 Unterstützung für das Calendar-Gadget und das Date-Gadget.
Der Code enthält ein Beispiel, welches ausgeführt wird, wenn er als mainfile compiliert wird. also einfach in die IDE kopieren und kompilieren.
https://www.purebasic.fr/english/viewto ... 07#p478507
			
			
									
									Wilbert hat im englischen Forum mal eine Sammlung seiner "DateQ" Funktionen gepostet. Diese wurden von einem anderen User aufgegriffen und als Modul umgeschrieben. Ich hatte mir den Code dann auf meine Bedürfnisse angepasst und unter anderem eine Komplette Date64 Unterstützung für das Calendar-Gadget und das Date-Gadget.
Der Code enthält ein Beispiel, welches ausgeführt wird, wenn er als mainfile compiliert wird. also einfach in die IDE kopieren und kompilieren.
https://www.purebasic.fr/english/viewto ... 07#p478507
"Never run a changing system!" | "Unterhalten sich zwei Alleinunterhalter... Paradox, oder?"
PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.
						PB 6.12 x64, OS: Win 11 24H2 x64, Desktopscaling: 150%, CPU: I7 12700 H, RAM: 32 GB, GPU: Intel(R) Iris(R) Xe Graphics | NVIDIA GeForce RTX 3070
Useralter in 2025: 57 Jahre.

