how about something like this:
will have to do a bit more tinkering to get the user input back out of it...
Strict Function CreateCalendar:TGadget(x,y,w,h,group:TGadget) Const MSCAL$="<object id='calendar1' classid='clsid:8E27C92B-1264-101C-8A2F-040224009C02' width=100% height=100%></object>" Local control:TGadget control=CreateHTMLView(x,y,w,h,group) PollSystem HtmlViewRun control,"document.body.innerHTML=~q"+MSCAL+"~q;" Return control End Function Function SetCalendarDate(control:TGadget,day,month,year) PollSystem HtmlViewRun control,"calendar1.Year="+year HtmlViewRun control,"calendar1.Month="+month HtmlViewRun control,"calendar1.Day="+day End Function Local window:TGadget Local calendar:TGadget window=CreateWindow("calendar test",20,20,400,400) calendar=CreateCalendar(0,0,ClientWidth(window),ClientHeight(window),window) SetGadgetLayout calendar,1,1,1,1 SetCalendarDate(calendar,26,9,1967) While True Select WaitEvent() Case EVENT_WINDOWCLOSE End End Select Wend
will have to do a bit more tinkering to get the user input back out of it...