Seite 2 von 2
Re: CalendarGadget neues Datum nachträglich setzen
Verfasst: 05.08.2022 15:19
von Kiffi
mbergmann_sh hat geschrieben: 05.08.2022 11:52naja - zumindest im Beispiel muss ich diverse verwendete Variablen erstmal deklarieren, damit es mit EnableExplicit läuft.
Es gibt auch
DisableExplicit, mit dem Du Teile Deines Codes zu Testzwecken von der Deklarationspflicht ausschließen kannst. Generell ist es allerdings immer von Vorteil
EnableExplicit zu verwenden.
Re: CalendarGadget neues Datum nachträglich setzen
Verfasst: 05.08.2022 15:40
von mk-soft
So geht es mit EnableExplizit
Code: Alles auswählen
;-TOP
EnableExplicit
XIncludeFile "Modul_DateTime.pb"
UseModule DateTime
Enumeration Windows
#Main
EndEnumeration
Enumeration Gadgets
#Calendar1
#Calendar2
#Calendar3
EndEnumeration
Enumeration Status
#MainStatusBar
EndEnumeration
CompilerSelect #PB_Compiler_OS
CompilerCase #PB_OS_Windows
; Create gadget eventtype change for CalendarGadget
#MCN_SELECT = -746
Procedure CalendarGadget_WindowCB(hWnd,uMsg,wParam,lParam)
Protected *NMHDR.NMHDR
Select uMsg
Case #WM_NOTIFY
*NMHDR = lParam
If IsGadget(*NMHDR\idFrom) And GadgetType(*NMHDR\idFrom) = #PB_GadgetType_Calendar
If *NMHDR\code = #MCN_SELECT
PostEvent(#PB_Event_Gadget, 0, *NMHDR\idFrom, #PB_EventType_Change)
EndIf
EndIf
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
SetWindowCallback(@CalendarGadget_WindowCB())
CompilerCase #PB_OS_MacOS
CompilerEndSelect
Procedure Main()
Protected date1.d, date2.d, date3.d
#MainStyle = #PB_Window_SystemMenu | #PB_Window_MaximizeGadget | #PB_Window_MinimizeGadget
If OpenWindow(#Main, #PB_Ignore, #PB_Ignore, 800, 600, "Window" , #MainStyle)
CalendarGadget(#Calendar1, 10, 10, 180, 180)
CalendarGadget(#Calendar2, 200, 10, 180, 180)
CalendarGadget(#Calendar3, 390, 10, 180, 180)
SetCalendarDate(#Calendar1, GetDateFromString("1965-08-20 00:00:00"))
SetCalendarDate(#Calendar3, GetDateFromString("2065-08-20 00:00:00"))
Repeat
Select WaitWindowEvent()
Case #PB_Event_CloseWindow
Break
Case #PB_Event_Gadget
Select EventGadget()
Case #Calendar1
date1 = GetCalendarDate(#Calendar1)
Debug "Calendar 1: " + GetStringFromDate(date1)
Case #Calendar2
date2 = GetCalendarDate(#Calendar2)
Debug "Calendar 2: " + GetStringFromDate(date2)
Case #Calendar3
date3 = GetCalendarDate(#Calendar3)
Debug "Calendar 3: " + GetStringFromDate(date3)
EndSelect
EndSelect
ForEver
EndIf
EndProcedure : Main()
Re: CalendarGadget neues Datum nachträglich setzen
Verfasst: 05.08.2022 18:43
von Pelagio
Weiß jemand ob in nächster Zukunft geplant ist die 'Datum Gadgets' zu Modifizieren, so das sie <1970 und >2038 darstellen können.
Langsam wäre es an der Zeit dies anzugehen. Ich hatte ja stark gehofft das mit der Umstellung auf C-Backend, also Update auf PB 6, dies mit umgesetzt wurden wäre.
Re: CalendarGadget neues Datum nachträglich setzen
Verfasst: 05.08.2022 19:10
von mk-soft
Wird wohl langsam zeit für PB intern auf time64 umzustellen. Werde es mal Fred melden ...
Re: CalendarGadget neues Datum nachträglich setzen
Verfasst: 29.01.2023 16:23
von mbergmann_sh
mk-soft hat geschrieben: 05.08.2022 19:10
Wird wohl langsam zeit für PB intern auf time64 umzustellen. Werde es mal Fred melden ...
Sehr gute Idee.
