Lparameters nKeyCode, nShiftAltCtrl Do Case Case m.nKeyCode=27 Or m.nKeyCode=107 And m.nShiftAltCtrl=4 &&escape, Alt F4 Nodefault Thisform.Release() Case m.nKeyCode=13 And m.nShiftAltCtrl=0 Or m.nKeyCode=10 And m.nShiftAltCtrl=2 &&enter or Ctrl+enter This.SetDate(This.SelectedDate) CASE thisform.pgfViews.ActivePage=4 &&doing time, so need arrows to work DoDefault(m.nKeyCode,m.nShiftAltCtrl) Case m.nKeyCode=5 And m.nShiftAltCtrl=0 &&Up Arrow Nodefault This.movereference(-7,-4,-48) Case m.nKeyCode=24 And m.nShiftAltCtrl=0 &&Down Arrow Nodefault This.movereference(7,4,48) Case m.nKeyCode=19 And m.nShiftAltCtrl=0 &&left arrow Nodefault This.movereference(-1,-1,-12) Case m.nKeyCode=4 And m.nShiftAltCtrl=0 &&right arrow Nodefault This.movereference(1,1,12) Case m.nKeyCode=18 And m.nShiftAltCtrl=0 &&pageup Nodefault This.movereference(-99,-12,-144) Case m.nKeyCode=3 And m.nShiftAltCtrl=0 &&pagedown Nodefault This.movereference(99,12,144) Case m.nKeyCode=1 And m.nShiftAltCtrl=0 &&home: go to first day of month This.SelectedDate=This.SelectedDate-Day(This.SelectedDate)+1 This.movereference(0,0,0) Case m.nKeyCode=29 And m.nShiftAltCtrl=2 &&Ctrl+Home=today Nodefault This.SelectedDate=Date() This.movereference(0,0,0) Case m.nKeyCode=116 And m.nShiftAltCtrl=0 ; OR m.nKeyCode=84 And m.nShiftAltCtrl=1 && t or T = time IF this.lblSelectedTime.visible *---only if time enabled! NODEFAULT this.lblSelectedTime.Click() ENDIF Otherwise DoDefault(m.nKeyCode,m.nShiftAltCtrl) EndcaseNew method Formdatepicker.MoveReference:
LPARAMETERS m.lnday,m.lnmonth,m.lnYear DO CASE CASE Thisform.pgfViews.ActivePage = Thisform.pgfViews.pagDays.PageOrder IF ABS(m.lnday)<99 Thisform.selecteddate = Thisform.selecteddate+m.lnDay ELSE *---99 means move a month Thisform.selecteddate = Thisform.MoveDate(Thisform.selecteddate,IIF(m.lnday<0,-1,1)) ENDIF thisform.referencedate=Thisform.selecteddate Thisform.PopulateDays() CASE Thisform.pgfViews.ActivePage = Thisform.pgfViews.pagMonths.PageOrder Thisform.selecteddate = Thisform.MoveDate(Thisform.selecteddate,m.lnmonth) thisform.referencedate=Thisform.selecteddate Thisform.PopulateMonths() CASE Thisform.pgfViews.ActivePage = Thisform.pgfViews.pagYears.PageOrder Thisform.selecteddate = Thisform.MoveDate(Thisform.selecteddate,m.lnyear) thisform.referencedate=Thisform.selecteddate Thisform.PopulateYears() endcase