Du hast recht, edel.
Ich habe den Code von Kurzer nicht genauestens überprüft und habe es 1:1 übernommen.
Hier die angepasste Version:
Code: Alles auswählen
EnableExplicit
#PB_EventType_Calendar_Change = #PB_Event_FirstCustomValue + #PB_EventType_Change
Procedure.l Callback(iWindowHandle.i, iMessage.i, wParam.i, lParam.l)
   Protected *NMHDR.NMHDR
   
   If iMessage = #WM_NOTIFY
      *NMHDR = lParam
      If GadgetType(*NMHDR\idFrom) = #PB_GadgetType_Calendar And *NMHDR\code = #MCN_FIRST + 1 ; = #MCN_SELCHANGE
         PostEvent(#PB_Event_Gadget, GetProp_(GetParent_(*NMHDR\hwndFrom), "PB_WINDOWID")-1, GetProp_(*NMHDR\hwndFrom, "PB_ID"), #PB_EventType_Calendar_Change)
         Debug "Calendar"
      ElseIf GadgetType(*NMHDR\idFrom) = #PB_GadgetType_Date And *NMHDR\code = #DTN_DATETIMECHANGE
         PostEvent(#PB_Event_Gadget, GetProp_(GetParent_(*NMHDR\hwndFrom), "PB_WINDOWID")-1, GetProp_(*NMHDR\hwndFrom, "PB_ID"), #PB_EventType_Calendar_Change)
         Debug "Date"
      EndIf
   EndIf
   ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
Procedure GetDate()
   Debug "Geht!"
EndProcedure
If OpenWindow(5, 2300, 200, 480, 200, "Test", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
   
   DateGadget(0, 250, 10, 120, 20, "%dd %mm %yyyy", Date())
   CalendarGadget(1, 10, 10, 230, 180)
   ButtonGadget(5, 250, 40, 120, 25, "GetDates")
   EditorGadget(6, 250, 80, 220, 110, #PB_Editor_ReadOnly)
   
   SetWindowCallback(@Callback())
   
   BindGadgetEvent(0, @GetDate(), #PB_EventType_Calendar_Change)
   BindGadgetEvent(1, @GetDate(), #PB_EventType_Calendar_Change)
   BindGadgetEvent(5, @GetDate(), #PB_EventType_LeftClick)
   
   Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
   
   SetWindowCallback(0)
EndIf
@Kurzer
Deinen Bug-Thread kannst du also schließen.