346
How can I bound the control to a data source

PROCEDURE OnError(oSchedule, Error, Description)
	DevOut( Transform(Description,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule
	LOCAL rs

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Error := {|Error, Description| OnError(oSchedule, Error, Description)} /*Fired when an internal error occurs.*/

		rs := CreateObject("ADOR.Recordset")
			rs:Open("Events","Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Program Files\Exontrol\ExSchedule\Sample\Access\datasource.mdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "11/11/2013"
		oSchedule:SetProperty("DataField",1/*exEventStartDateTime*/,"Start")
		oSchedule:SetProperty("DataField",2/*exEventEndDateTime*/,"End")
		oSchedule:SetProperty("DataField",11/*exEventExtraLabel*/,"Extra")
		oSchedule:DataSource := rs
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
345
Loading events from a XML file

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LoadXML("C:\Program Files (x86)\Exontrol\ExSchedule\Sample\VFP\XML\schedule.xml")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
344
Generates a PDF document on a single A0 page with no margins
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()
		var_CopyTo := oSchedule:CopyTo("c:/temp/sample.pdf|33.11 in x 46.81 in|0 0 0 0|single")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
343
Generates a PDF document that scales the content proportionally by 75% using B3 pages (default margins)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()
		var_CopyTo := oSchedule:CopyTo("c:/temp/sample.pdf|6.93 in x 9.84 in||75%")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
342
Generates a PDF document that fits the content exactly to 3 A4 pages wide by 2 pages tall (default margins)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()
		var_CopyTo := oSchedule:CopyTo("c:/temp/sample.pdf|||3 x 2f")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
341
Generates a PDF document that fits the content to 3 A3-landscape pages wide by 2 pages tall (custom margins)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()
		var_CopyTo := oSchedule:CopyTo("c:/temp/sample.pdf|16.54 in x 11.69 in|5 mm 5 mm 5 mm 5 mm|3 x 2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
340
Generates a PDF document that fits the content to 2 Letter pages tall, automatically determining the number of pages wide (default margins)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()
		var_CopyTo := oSchedule:CopyTo("c:/temp/sample.pdf|8.50 in x 11.00 in||x 2")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
339
Generates a PDF document that fits the content to 1 page wide and as many A4 pages tall as required (default margins)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()
		var_CopyTo := oSchedule:CopyTo("c:/temp/sample.pdf|||1 x")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
338
Generates a PDF document on a single A4 page (default margins)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()
		var_CopyTo := oSchedule:CopyTo("c:/temp/sample.pdf|||single")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
337
How do I limit the number of all-day events to a range of 1 to 25 items

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value >= #5/20/2012# and value <= #5/26/2012#"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 1053073/*0x100001+exAllDayEventWheelScroll+exAllDayEventMax8+exAllDayEventNoMax*/
		oSchedule:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oSchedule:SetProperty("Background",165/*exScheduleAllDayEventScrollBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 220,220,220 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/25/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
336
Arranges all days to a single column (vertically)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SetProperty("Background",41/*exScheduleDayHeaderBackColor*/,0x80000004)
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","01/01/2006",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
		oSchedule:ShowViewCompact := 2/*exViewSingleColumn*/
		oSchedule:Calendar():OnSelectDate := 0/*exNoViewChange*/
		oSchedule:TimeScales:Item(0):Visible := .F.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
335
Arrange the view to display weekdays vertically across 7 rows, with one row for each weekday

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SetProperty("Background",41/*exScheduleDayHeaderBackColor*/,0x80000004)
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","01/01/2001",.T.)
			oCalendar:Selection := "month(value) = 1"
		oSchedule:ShowViewCompact := 4/*exViewSingleWeek*/
		oSchedule:Calendar():OnSelectDate := 0/*exNoViewChange*/
		oSchedule:TimeScales:Item(0):Visible := .F.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
334
Ubuntu appearance

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oAppearance
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oSchedule:SetProperty("Background",6/*exCalendarDaysHeader*/,0x1000000)
		oSchedule:SetProperty("Background",28/*exCalendarDaysHeaderForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oSchedule:SetProperty("Background",29/*exCalendarWeeksHeaderForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oSchedule:SetProperty("Background",8/*exCalendarHeader*/,0x1000000)
		oSchedule:SetProperty("Background",41/*exScheduleDayHeaderBackColor*/,0x1000000)
		oSchedule:SetProperty("Background",36/*exScheduleBorderSelColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",19/*exCalendarSelBackColor*/,0x2b000000)
		oSchedule:SetProperty("Background",20/*exCalendarSelForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oSchedule:ScrollHeight := 13
		oSchedule:ScrollWidth := 13
		oSchedule:ScrollButtonWidth := 13
		oSchedule:ScrollButtonHeight := 13
		oSchedule:SetProperty("Background",64/*exToolTipAppearance*/,0x1000000)
		oSchedule:SetProperty("Background",511/*exScrollSizeGrip*/,AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oSchedule:SetProperty("Background",18/*exSplitBar*/,0x1000000)
		oSchedule:SetProperty("Background",256/*exVSUp*/,0x2000000)
		oSchedule:SetProperty("Background",257/*exVSUpP*/,oSchedule:Background(256/*exVSUp*/))
		oSchedule:SetProperty("Background",258/*exVSUpD*/,0x4000000)
		oSchedule:SetProperty("Background",259/*exVSUpH*/,oSchedule:Background(256/*exVSUp*/))
		oSchedule:SetProperty("Background",260/*exVSThumb*/,0x6000000)
		oSchedule:SetProperty("Background",261/*exVSThumbP*/,0x7000000)
		oSchedule:SetProperty("Background",262/*exVSThumbD*/,oSchedule:Background(260/*exVSThumb*/))
		oSchedule:SetProperty("Background",263/*exVSThumbH*/,0x8000000)
		oSchedule:SetProperty("Background",264/*exVSDown*/,0xa000000)
		oSchedule:SetProperty("Background",265/*exVSDownP*/,oSchedule:Background(264/*exVSDown*/))
		oSchedule:SetProperty("Background",266/*exVSDownD*/,0xc000000)
		oSchedule:SetProperty("Background",267/*exVSDownH*/,oSchedule:Background(264/*exVSDown*/))
		oSchedule:SetProperty("Background",276/*exVSBack*/,0xe000000)
		oSchedule:SetProperty("Background",268/*exVSLower*/,oSchedule:Background(276/*exVSBack*/))
		oSchedule:SetProperty("Background",272/*exVSUpper*/,oSchedule:Background(276/*exVSBack*/))
		oSchedule:SetProperty("Background",384/*exHSLeft*/,0x12000000)
		oSchedule:SetProperty("Background",385/*exHSLeftP*/,oSchedule:Background(384/*exHSLeft*/))
		oSchedule:SetProperty("Background",386/*exHSLeftD*/,0x14000000)
		oSchedule:SetProperty("Background",387/*exHSLeftH*/,oSchedule:Background(384/*exHSLeft*/))
		oSchedule:SetProperty("Background",388/*exHSThumb*/,0x16000000)
		oSchedule:SetProperty("Background",389/*exHSThumbP*/,0x17000000)
		oSchedule:SetProperty("Background",390/*exHSThumbD*/,oSchedule:Background(388/*exHSThumb*/))
		oSchedule:SetProperty("Background",391/*exHSThumbH*/,0x19000000)
		oSchedule:SetProperty("Background",392/*exHSRight*/,0x1a000000)
		oSchedule:SetProperty("Background",393/*exHSRightP*/,oSchedule:Background(392/*exHSRight*/))
		oSchedule:SetProperty("Background",394/*exHSRightD*/,0x1c000000)
		oSchedule:SetProperty("Background",395/*exHSRightH*/,oSchedule:Background(392/*exHSRight*/))
		oSchedule:SetProperty("Background",404/*exHSBack*/,0x1e000000)
		oSchedule:SetProperty("Background",396/*exHSLower*/,oSchedule:Background(404/*exHSBack*/))
		oSchedule:SetProperty("Background",400/*exHSUpper*/,oSchedule:Background(404/*exHSBack*/))
		oAppearance := oSchedule:VisualAppearance()
			oAppearance:Add(1,"gBFLBCJwBAEHhEJAEGg4BL4Cg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMaTVJ8bQ2ASEZwjNhGBT0AJEUZFU6ABJMZRRICeYRAaKwIoGJYaUhRdCxPCIZBqEqua7iEZRQqCCZkWZUMB1BC9JwHCKXbSpSi6NAAMokXDcMxzHIEfQ1ISBbpuWB5KrGfgABhCNqBVS8LpcVJSQAxfIaKwXAYgYRgNqSFIFXYRBKqYDxSZaDpuWYWWDaNzWFY9SzHVzDMShHCYDx7I55S5dGYUXjkN1c6A3XJ8WraT6xbTVUB6Dj/BRvDjWJi6EALIxfiqCxbCQFpIg4e4Dk6XJoCEJQDEmDJoHUOQZEYMgFDUQIEE2dhGiKMAxEeBxFCWbwAA4GY+BKFRSi4fxfnesAAmAJ54j0MBMEMUJXDYTwzlCdIDGCeA6BCBJgmgHgJgK" +;
			"YJTlSZw6E6KBuB2BwhmgegWgKDYYDidQ6CGSIgmqCoikgcgjgKTxDlYJw6g6M4iDSDYjFiXg0guYknHZKIzjIQIQiQGQOEODwjmOWJqDsDpZC4TYTCSaQ6EgPYPGkBJthWJYJDIVoPCUQ5eEwO4lnnTAYCYORwneF4OmOPJshoZo5ipWJmGOXhjDuZw5lYaYcmOSYcniGhPAmch+DuZ5aAIeQ+A+CgAnGIYogOQoHiKI5KBCeYig8KhChIPBpBoUoND4T4aFCcomimQ5KhuJ9tGCeYng8OoSiYPIqFqIohXQI5OA2K4gnqPoyD0KgTmqLYMGGGpmjiDBjkqWJ7gwTxrAKQoPiwCp0nsPpkhsJhUjKDxonKRw+k8aYelEPZtDsVhnjOD5D1WIQtjOYpdjeaBInKWQ/Cia4UngPhuGOZpijYagrjabooi6M5wn2PJvEuVp2gWL4ICKeQxC+O5tAEgI=")
			oAppearance:Add(43,"gBFLBCJwBAEHhEJAEGg4BPIDg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDEAkRRdDSOYDmGQYDiCIoRShOMaTVJ8bQ2ASEaAmWK2RJgJwAUTRcTTYAEUxlFChJakAC4bA2QYlRpSNIUNC8IhkGoSa6sCIRVDCYYJWTZc61PDVKQHKKXbTgOjqNowNIkXDcMxzHIEfQ1HCVMBpfAqShsE5sAAFdYRPTVNSXQi6ILka4IbpOCaHQLVUB4VQdMy5RyEbCtKIrDqiZpkabcMgVDjAATdRK8dSyCS6MiKfgAVDrGw3FauCYlObKIyyaz4JxoAKtbrfcaaLKXGABNLUNDiaoOi8EYvmQch2lCEBECSIBpDGHQOicIwokYQJOgYEIJj4eJQloEgomKQhzhIEJEF0MQRmSCZLA0H5Pm+dZ8H+X5oAWfYAooDAAH8BBxmCcICGCOAqAyA5gmgRgNgSYJHnI" +;
			"Bx+gTE5xBARwTjAQQck6QQAHIOphniBgjSkKIGB2CghmGSJtgYTwYFmfASkeM5EEJK5YHya4IiIQZODuCZhlEAgrggBAxlCbYNCMF5qBcNBElGdJyBCBxDjoHw7GQKB6DiFRlgkDJthETppDScoMh+IRAH8PJEEGVJuUiWJmCmGgm0wK4LiQU40EWGYmCOThgDQRQiAIZAdg6eRyDeFplBmfBChqRwzjgRIRgQWZyHmHYkiecBUCCDxBBgdw8AQQZY1cZoaFaF4aGWSRyHMOxEHoToPD0JxxFiBA9GoE5CgkO5mFOOorisaB6BgdQ7kQaZwEiAoqGOVh3BYSBjloMARiCIQUHeLQsBsDhzDubAoEwSQeg8GpwnaHZFjIIJ2BKB4jkgSAeE8ChInCNZthoTBHh8KQjkYMASm0WxGk+IxfiEdIKD2RJBmycgSiMWxynAPBtkEJB4j0IYrFCcQTAeQ5KmoPZnHEfILD4BJBnScwSi+WwsnGQgPCwKp6jKTw" +;
			"hC6fYTE8PAIniHZGCINJ4BOB5jk8BZEEeS5uE6RIPBiUwgDyJZsHCc5GHEe4glEGQInOZBPB+DxMisKZHGWYQ0HwPJxEyTJzh0cwDmYdwZgkE5qGIPREnIAJ0BOZl7kuGJFAGdxLk1XpQFEIAPF0EJ6h2RoCEye5VnUYgEnUFA0iERxilkDxNFcZA9HYY5UFKWI1lObh3BqSRDmwUlvm2HkdoswPCbGsPkHg7RNgQc0J4YQnh4i6DcFkOA2glgfEEKEA4wh4jiE+icTw3A7ggD2NEc4sBVBCA8PwLI+XtjkGCPsKYHwODZHeNMOoHByhNGmPUIgIR2jSDoCcdg7gcCTCOOgVwQhPDiFuHEboHwOjXDkEIe4vRviBG+AocgMR4jaDtBIcwTgPjeC+JscweRvCPFCOkfI/hXidB2MAXwzACjtCAJACAABACAICA")
			oAppearance:Add(2,"gBFLBCJwBAEHhEJAEGg4BMsMQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAwjGK0EwsACEIrjKCRShyCYZRhGcTSBIAYRKASEYjlCBBTiKK4hSJAYKwTKcBxBF5/YRnGKpEgkCIJFAaJhnIapZDKGKQB6lMgiNoqGoVQKKEyVHKwAAxC4EJbmGKlTTdOz2PY9dgWFYNRzNMq0LItKw2SZRVwAVzXdo2PZdZztNS2bbuG5LcrefZ4W5cFbXfglfTTPLBLitJpMMLLDhtZBkOQ4caWqZ0Yhedz5MamOoGQZCM5OTJrfxmXj1PTYGZ4Ya2W5JQx7cQWZaVda9bzwYXcB4HRzlcTyPK0bStQACfqGYxuG5cDaeMqFZjnOi2DZNaADMJbG6Lw4k8N4blOGx1HuPQeg8XgTGGSJlHQAA2m8FgzCGsJljOOx6h2BYPkKdRrjYWx9CaZAOHYAA/k6Q40m8MZMiMNJADEDIDHyYA4huM5JigPYbkOSJjDkDhjDiUA1A0" +;
			"ZxYm4bZflSaZ9HqHRzH4BAzEwEwUkgMIMFMJJHDITJTDyUg1E4E4MmWBxfngdQBIC")
			oAppearance:Add(4,"gBFLBCJwBAEHhEJAEGg4BNEMQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAxDGLEEwsACEIrjKCRShyCYZRhGcTSBIAYRKASEmpyRAgZxFFiQZCgMDYJjSA4gTA/cIzVDUSQSBCESgNEwzULUchlDDIA7SYQRGyXDQbIRFCZaUjcAAYRaCEwTFDSUJYWB7HqeewbDqKZJnWZaNi2XYjCKOZYAK6sCyrIqydJ3WrbVwXFatezxPy8bbuGr8AbrBqGPriGJPVhODTrPTBbjtNw3DaRLqXKrmOZZVi6XLLT7HcCvS6MUaRL6nLjqOjqfj7S4BSC5HpeWwdExVMK3azgGxPNiCVpeWZ2XadfALEbNcz0cRYTwPA6LDKSZoAFrXJbmXYyluZJdjsNhHAOCZIk4aA1AADQmiMXRkjYXQ8h4XILn+MZvkYegxnmbZWnuBh2j4YQxFebA2DeP4xkUcZMlMQJTDQDQjFUAxPAABJwn8MAfjKXI5C8TYjGyXg7k6c5AnQ" +;
			"bJhEORJeH0H4zCWXw0mAeIGCKAoNEMWJZC+DATBGZwvh0Ip4juCgMGMIJMDaDZDHoI4IFAECAgA==")
			oAppearance:Add(6,"gBFLBCJwBAEHhEJAEGg4BOQDg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQCQk2MBJJDAMAlSJKEhRVDsBxrEKBZFJDCIZBqEqeZ7iEZZPiAN4sTLOExgbBIPQ/BKZAAfeCaThqQZARxQUI0IItDALJKlIqCtpkBydHKoKotKpqZpiNpaQLXFByfCMRR1BIDLIvKyLAo+fAADBXdwyeJoaSjFSQIpsC54DqUAKOBTfV6xPIkEgRBIoDRMM5DVLIZQxSA5VIEERuRQ0GyERQvMALHiEGIXLBSGRxPSuaqcaBqF6YBhFUTZOiwLKtayLOrafqEYpqGqbGA9V4yaz/cYxKzLQrjMpaG6PAeC8J4zlmbpsHYO4ag0VpCleKJEGMMh5lUKonM0RBjj0XovH+G5dmidB7DyHhPEcc49l6aw7E6Y4kmoOpLneOZvDKHJikmPgtguEpxlwPZdkOYZxD2Dw3lmWg8mA" +;
			"A4+AMOxOGOHJqDmDoDiWZQvAyIwwk8AALAKUI4DaTZDHyeA+E+F5OBIfIPDOTJ1HYTwzjCbQ7mAI4yB0OhOFiAJRDSTRSmyPgwgAAo9kGBRPEiPgxD2T4YE4FQ9GEc42ACCBjykaQ5CQGRwmYLJgkkJgKD6T4znCd4LmMKRJncPBPBiZhXgCJAThyYg4k4U4kxYCp4CoYgtg+WZ2GeE5jDOVhMgWY4jjYWg6mWQ4iHNKoomoeQtwKcJ8D8Z54EWdg9h8aJdlqDoOykaA6g4M4QmYOBnEoNJtiOaQaE6FQ9g+Chcn+K5rAqQoeigKgqhCZYpirVASiUIp6Fmdwvh6awAkSMIrDqBojikaJpmqOoqiuWoyheJhdhOSocjEaxbCKJ4yiCKpuiuKxfHqRpejULB6l6SYkCyOpwnmL4PYKah7i4CpajiNgLGsapNjcKYDlKGo0iAC42laLhthsMpnjOLZbHqMonmwa46mOKhuGuIprjCbpMBKVY4i0e4Sn2Qh" +;
			"wAuVp3jScJrgab5Ei8G56miNApjuZwZkGMQcCKW4zm8axHBiLQxiwHplkmXx8gKeInHIO5unCHxuGmJJ1gULxnmYbg7mmc4uHGMYxxqOITiMKA+X8HYjkibh/COWQEmiHQOHmXwljKT5JDoER8E8eJWhqT5iBOLgdlSThIHmX4uGSN5bEiGZmiOUxNgYYA5GSaoXA4fZQjMLRLhiIgqgsBseIhR/B8B2JcVY8A8pHHCOEAI5hID8FqCEZAtiFgFAuFAMIewDi+DkI4O4KR4CPGyN4PATh4AMAOFlXgLAnDmB0CYCY3h3CfAeKUdgeh4CHFeDYPAQwZi0MqD0B4UxrCpB0DwSIskyCzDGLYdwOxzh0EQGsYgZgPhrG2KoXwQxMDbE0G0aIhwYA3HcAsQwXYXiZFYGwHoTg1ACICA==")
			oAppearance:Add(7,"gBFLBCJwBAEHhEJAEGg4BVwDg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQCQk2MBJJDAMAlSJKEhRVDsBxrEKBZFJDCIZBqEqeZ7iEZZPiAN4sTLOExgbBIPQ/BKZAAfeCaThqQZARxQUI0IItDALJKlIqCtpkBydHKoKotKpqZpiNpaQLXFByfCMRR1BIDLIvKyLAo+fAADBXdwyeJoaSjFSQIpsC54DqUAKOBTfV6xPIkEgRBIoDRMM5DVLIZQxSA5VIEERuRQ0GyERQvMALHiEGIXLBSGRxPSuaqOZJmFTVVYEaR1ICUJamW6qApiXpkZpnWigPZeLqtfyuLCtCaJcoLFJMGcOgdE6J4LkmZJmHOOZ2myJJfFEZo1FwcxqFUToClEWIuFgPA+C6dx7kGVpsHaOZdC6JwnH2RplDmHZziCKR7gsQpZmgeoKDKGIqCcCZygmcQ8B8M5Em0O4OnOJJrH4" +;
			"HYTgyZA5k4A4ImQNxNmOBgaDkYJCgiOAukucAAhkb4MmMPJRHcTw3lCcQ7CEQ4pnYOZhhecJfgiDY4gYIA4gwQwYkiAhKiAAZACbOA5lwPJfBOSgTDuTojjCbIOA6KBomYN8pAyXA3E4AxmD0OAOBOCZBCcQACEiFQmA+A5knkPBdkeRgzHyTo4F4VA4g4M4Yl6BxNiMcJfDYDYjHWdg7AkMhYhmGUEmSeg+iTNhyg0JQJkiaQ6GJLZhDaTZZm4fR9k6WYYhiIQJgmKhrDwYwTj4M4El+I4xl8OhhmmWh4h6J5DHYUomGYehygaJ5PCOOJwgSIRKBye4uiuKRwzqDZjGCWQ3CeehqjIPorEqWo4DuXRChKTYzGuawCkKMQlCsGoaiyZpKlaN4TmcE40mYdhiCOFpRg8bQ7BaMY1myC2bhOa5DmqO47i4OwGkOOYpjuIpJjaYRLDyIYzi+O5GmWNRuHoFppHcLo4FKXY3k6K4Gn6PJwAuVwCj2bI7jabw" +;
			"+nCOxQmyNYwnuKp4jNsZoiSRRvEsHJ6gwKgpDoNYNk6CoiHWJROBMaoUisap8GKHYaiaSJHBuBYlDuAZ+ksJ4THyV5DDEfAGh2IZohmMhPg2IYKiGf40E2SwGHmTB0CoGoIHcI18HSFBtmyJoph2TgjG6LA2GqY42jCQ40DOao3DyNRch6JoFjXW5ik8TYKFMUJZCgfROEyRpfG0JZ+hWMsGgoRfgvA2ucMomgPBZFoCUHAURpCrH+CwJYUhzB7B+NAGgHBHB2GEDwFw0wjDDA4FQHIDwiAZDYPUGAnA5wjG+DkAwhwFB6SGIUDIrAfgvGyMoOgTAYD8Du9gMwGRFBjGQqoRA4RdiHEoN0aowh8pKH8HYB49w0grAmDAMgTwKC5DKEEKwVwKhOBYN0BQPhfAJGkHYPAhwQotGAAcHITQAi9EeEsagqQ8jFDmIYdYGRXDLFsO4fYZwfhuDIbUfYdgsi9BUK8Yw2hNAGESKYKQFByhVAICcDgix/h7HELA" +;
			"NIjQoiuH6E4NIASAg")
			oAppearance:Add(8,"gBFLBCJwBAEHhEJAEGg4BEQDg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQCQk2MBJJDAMAlSJKEhRVDsBxrEKBZFJDCIZBqEqeZ7iEZZPiAN4sTLOExgbBIPQ/BKZAAfeCaThqQZARxQUI0IItDALJKlIqCtpkBydHKoKotKpqZpiNpaQLXFByfCMRR1BIDLIvKyLAo+fAADBXdwyeJoaSjFSQIpsC54DqUAKOBTfV6xPIkEgRBIoDRMM5DVLIZQxSA5VIEERuRQ0GyERQvMALHiEGIXLBSGRxPSuaqSZZnFgWJZVBSNJicJ4oO6qMqKZpsZ5oWjgPZeLqtfyzLSuChqKpDJpUGsPBeE8J5nHGYZePeGhdDUQphHKPJmlSKodAWRxBG6eZ3j8fg/C6Y5xnGbx6j2HpdheHwXiKOh5l6FxQuqChiiSeIBk+aAlnIfJdkOXgHDyTxDlCcA8E8E44m8PAeDK" +;
			"aI9DAQACHyIQpE0QxUlaAhiEOegMH0D5IDieA8iECBcnGBZPAMNJODQCoSiyLgAAmNwEnODpiFgKZxgoIJTlyd4LA8M4+BcOwOlOOJpDqDs6CROQiHCH4PGIWIcnuFZPGkCZaDyYRjkISA7SCVJ1CaCZSgIUIUg+eYmFSFYlgkCZ7gWDpzi4SB+A8aREh+GZJnmJJ/hqY53HIVw+mWE5eG+BYnCONh0h2J4JmofA/GeKg2GmBQPCkJJuUWQ4ygeFIohmKg9HyChyiSLInGmeh6hCJIpEoWZ5iIJxqCqG4fE+SZ+gGKJOmoTtYGceomhqFRfBoOoNiwKwqhodYmCsaZuisPxqAsFoiHYahKk6J4wCaCpeCSGwoAmOpIiwahalKGYwiuCgyjqI5tDqdpWjAaI7BqIQrCuSxWkuLRslsYpP4maxKhGNQsiqfpoh4bJonifR9C6WgJlqEhnBmTpnjWaI7mIbY+iWSgSn6PIwUCAo0HASZCgWN5uhwBh+kCZY" +;
			"5HSaw7Gga5+mCQokAkChDg6ZBpHoSZECUORSnaEAihgHgsD0IwDjKMYYGYOYWDiDojksDgngrMhKBSPwOhOLhNCgCg4HYHx1g0WguCcfYPhyQZZDyIpjDIMgqCMYACAIcJenOZprgKXxNFYYg9iWNx4nAcJhiMARUCsSwCk2fR7k+KAuiyVRfhoCJxDySpmmmax6B6FRLGQLJcD0EhbH0DsY4iRNDwBwGUSIaAti9AUK4dQ2hNBGEyKsDQlRiDpB8FECYcwUg9FABUPYJAiBsHgK4NQAiAg==")
			oAppearance:Add(10,"gBFLBCJwBAEHhEJAEGg4BMEMQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAxDGLEEwsACEIrjKCRShyCYZRhGcTSBIAYRKASEmpyRAgZxFFiQZCgMDYJjSA4gTA/cIzVDUSQSBCESgNEwzULUchlDDIA7SYQRGyXDQbIRFCZaUjcAAYRaCEwTFIUeL+d54HhbNrXAYdSjNMCxLIMEwrEqOZJmWbaJpXCaNZoDV5eE5uY5rXzMwgxDDte4DRLhMJ6XpebB3SaNZDmM40DSNMzLNrdMK9LAeGzWMYiZzzPK9DzPM6+R5LUjTNKeR5HVZfFTZNo3F5NRYaeJ+YZ5NB1HSNcyfPqqaw0bStRh7UABW5jG4sTa9fz3TLMOY5botQzTOgAFsLhXi6ewHD8e4HHidx3k8F4Lk+BJYAALJWmuPBOg+HYkGofAOl8L4DFOQ6ljUGp+g8V4HmgdB/kgMgMgQf5HEeUZhH4H4niSOxzB8QZKA4GxhAgRgRgOBwoBmPYCB+" +;
			"OAtm4cxhkeWYkgYIIoHoHYGlySIBnyCQigiDY+gmIYoioIoBl+EABAEgI")
			oAppearance:Add(12,"gBFLBCJwBAEHhEJAEGg4BNEMQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAxDGLEEwsACEIrjKCRShyCYZRhGcTSBIAYRKASEmpyRAgZxFFiQZCgMDYJjSA4gTA/cIzVDUSQSBCESgNEwzULUchlDDIA7SYQRGyXDQbIRFCZaUjcAAYRaCEwTFIUeS8ahrWxXdgWETZOi+LauS6rWrzAqMZBmGybRroDp6dY7OK5LjsAwbDJsXJeWybNrXOa9cD0PS9Tr4MzzPrDPpkWaaBo3FaZaJ3XTbLCre0zcjzPQ9TzPPoWSZHUrSXj0BjcTZBUjVXa0VgLFYzZY/VDTdx0ba9JyBRzJMy3OLABZKfTCbbcN43LieJaBYjkZI1AAKWp6ZptkKcw3E8XBLmGcJ5myPZeA8B4LBug5UCsFgdj0FwvEaZZ3iwPgui+Hx3j+WpEjEGJsj8P4nkGbw5EqeAEjmAJgBKPZzDqHxXCWeR+l6ApBkkOJODOEIugSSo4FYFoFiE" +;
			"Mo4mYOYOHgKZ6H8IJnjWSoIl4BoWAuCAiFiCgpG6Yh4DYK4LmIKI1n2CojEiEY6gmUAQICA==")
			oAppearance:Add(14,"gBFLBCJwBAEHhEJAEGg4BSoCg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQCQk2MBJJDAMAlSJKEhRVDsBxrEKBZFJDCIZBqEqeZ7iEZZPiAN4sTLOExgbBIPQ/DZ/YRqGKqBoCHJCQjRAi0MAtEyVCwLYRpSA6OjmUJSRrVNpVTJ9BzbLydIRAawoJqGZpeRrJEIgRBJIDSMY6DpOIxRRiBZpIEITODxUK0pJ0WRTYYROqFETxCxZVrXN5nWbfHD3Og6LpMeyLKqIY5lGDYZimJYtTzWNg2TqOY52P4+aRqGrADKVbbVdT2NA0TSre00TjQNK2DYtYzbOK+bRuG6aVp2ZY1TxpjcW5uB2c5bHGOpeGkGoMCYIwhi2SxtDaW5clae0DmCbI4FuTgHBeSZElMao2Bufw+nabw0jsL4MCcTJaGwTZXiGahzh6V49lofRdiODJgDgTg3HmfBvBqUw9lQNwgEg" +;
			"GZrgIXwIDIEEgCOEZQDeIQ2GmOA2CEeBlmmBpemgdZzgMYgDhID4EFuF50jsbANjiJJagEYo4CILYCmKeB+CEOIODOFglg2TYImWS4KiAd4yD8fBkBODgxhEJBolWPIOCOKJyE2BwkAOCgwhCZBZB4WISmOOBqD6AolAkehCDkJRJgoSYWGYaQ6GiB4lCmAhVHeWYpg4GIZGOWZKC6GonFmMhhhWJ4Zj4ZIWiKSZOFGFJoDmYhIhKJ46CIZ4fmWegKHeDYnikMoJiUJo5jaBIjmcCZ2FyGhpFoeoOiYZ5JG4T4dCiSheRmKQZkaI4rCcaY6hCJopDkdoliMaYKkKOIfiuKh2jyK5rHqJobjAaAahqPYxGkKwCiSMIqmoFpMiyKo6C6NYnmqCw2jONYpGkHgnigaoqCqAIMGMOQeBWOAsHsPoBgiZBymoAB0k2Op+luIAuFaZhHDOW4DAiRQyCEexSmIfRfHMYJeDeTgpB2XBwFwNopkcchcjeLgjgCDJ" +;
			"nF2UR2lueQdjYZxOHOIYjDQTRDA3oQakaOYwDaDo2lMFw9l+RAEIC")
			oAppearance:Add(18,"gBFLBCJwBAEHhEJAEGg4BL8MQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAxDGLEEwsACEIrjKCRShyCYZRhGcTSBIAYRKASEmpyRAgZxFFiQZCgMDYJjSA4gTA/cIzVDUSQSBCESgNEwzULUchlDDIA7SYQRGyXDQbIRFCZaUjcAAYRaCEwTFIUeS8chyXQbBqmdZNVTYNI1DT2TZdVTZN63LSnNznPbCYzcWY1bjOO5LYrkeZ7HqefAcDwLBKHYZgU5tMzDNqubJtXoeR5cIwXFqVZhiThOG4rHqgah5zw5PgTKZNUbCAAZdomVaNZDmahiLz6MyhZZtWJ7QAYdiWNbCfq4bQdHBGbwmcE6MSyLy5JobYz8OzoEDQNBOEK3RhgveDwNncAxNkIOh1HiTB2FMNY+mAcRuDCGxNjGS4Mlsbo4BgDBGEOTxDmmUppnYWRQAWVZjmMM4MgMLJOH0TxHl2JIBlOM4wm0O5dhMMI8C+TAzHGcA7k6c5FksYBfig" +;
			"ZYWE6UAzn2fRYk2WBAkYLYLhKdIzC2S44h4KYKCKKI2CyCgAAQBCAgA==")
			oAppearance:Add(20,"gBFLBCJwBAEHhEJAEGg4BN0MQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAxDGLEEwsACEIrjKCRShyCYZRhGcTSBIAYRKASEmpyRAgZxFFiQZCgMDYJjSA4gTA/cIzVDUSQSBCESgNEwzULUchlDDIA7SYQRGyXDQbIRFCZaUjcAAYRaCEwTFIUeS8bpvXBZZoGUYZSTNMQxbJ2TZdVTZN63LSnNxXrieaJqbKZVwHCaRcDwPC9LyvNgjb4LQ57MKxHBZbqNUzNNA0bxvG6mEYVS7LMxxEAGaZxXjDMYyWR5LheS4xRJydRfJ6nbxpdwA4YZRrrBy7FqpOSrW5PXrmXAAXZeWBddz3RzbKKpK7yKp88K3JqMLauS6vJgeXZGWB2BcHYuFqL4bj4WwuheTpnHuQ4MnccY4lyHIVH8c49k+TYvlgLDXG2PZmkKegchuJR2i+HYnGuTRDFiWQtkuEp0nIZQfHYJZ5HmE4zAGIAvloBoOAkf5ZGSbJjDkThyni" +;
			"QQxEsJ4AlcNhNjOOZjGCGBHj4FBmlANR6CkNBgBcRI+CqSpykyKArAsCJODWDQjGiZg4g0AAEAQgI")
			oAppearance:Add(22,"gBFLBCJwBAEHhEJAEGg4BLYDg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQEQjBIwCKAUUhnESWZCjKLYDjSIYDSBIUQxCKQahLHifJAGegpZhuRYaAbCIKxfBMYgAf6EagjKgJfhyQYJULWFLSFIALw2DylKYgOjqSo+G5UWhCIyyXCNVyrGSbiTRWBlQxxOCLZAAWypLC0NIlSAOFLDDJ9cRBOqNAoua4bYrmtIEIRKAyTDLQdRyGSMMmiIEsJrOIyGaCRIgmYIDUrdYYROpmO4bDSpNhZJjGPTtPjBLKtS4qeqSbZ5Xzed74LgeE4DRrDcbxPIbfrKc5sYLZWbgPYeThbMRiDGGQrFWQpxiKUxqjkHIuHcU4xliax2DsfJum8I43lmbp0HufY/A+H5LmucZ2DofJ+BcOxDj+WwvB2AwplUWYVBcYJJC+TATBCZw6A6I4YmgOhfjODJkDmTg3giYg4k4" +;
			"Y4GBWBoOFgcgegaYgIHYIYHmIKIWBcOYhHOFZ7HiDoIDiaYCAwSAaAMNQNGMYI2HcIJDiyaQ6g6OAuA0eJOGgLJlgOIRThoEoRg4SQiEqEZkkkJhNhKZJpESZh4E6CQMmeEBOhkYhBDqI4Xn4NA2FAMp8kIMRdnMXJtDuDp3ioPB6l4eA+DoeQgmOKg+hyYJJlIcodGeCZeHqHYnDeZgPhcDoTjIOx7E6M41mgO4NEMVJYhiDBUAyNAtkuJ4WGgPAPAoToThmTp3iCbw7iaCgeh6GZoHaXJED+ahKgYCYpA+eoaiOKRqAqNoG3WWo0m+Jl4mWaIjkuNAMjALJLHOWo+DyDwzlaQA9A8KwAnGMRPAORJzjGTwrCSc4yGyWwelCKIqgsTonikLRqiyf40C0CwekuMotmsOpe5KSp4neLpLHQDY5C6DwbjSdA9E8U5Om8PQuFuSJ0DybAbki7QPFuUp9jybp7FKJI/jAI5/ASNZwGwApxj0L4rkqcY+G8S5" +;
			"QnaNAu4mPgwAwQxklsNxPHwdpw7ybB+v0bhsgMEpJm4XIgnaSoykyJwukqbhbkMMg9jII5UneR5xlOXJZDaDZcXwQJMmMQJUG6C5bhsHQ+GuY5jd8NIdC8R5SHUA5bEyVI1B0TxWlUdYNEsTg9nSI5cnmUp0hyDY6C8NATFGVnDCMGNUgwc5bFwPhPiOaNbE+HZPHWXQ3G2Px6lyd49H8PkX47xuAOH2MEdwexbDtDmEEEwPEABADgBkf4Rg0CGGyLgN44gTjnBYH4eYHBngvGaJ8Q47wcjPDmLwf4RRoD0E4MkfQfRPhnHKO0ZIGx9gdAyMcHQ3A5h6C6BYAooQ4BXGuI4LYlRui5B6O8Oo3wchVHOGoLgdg+iEAQIAQBAQ=")
			oAppearance:Add(23,"gBFLBCJwBAEHhEJAEGg4BMoDg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQEQjBIwCKAUUhnESWZCjKLYDjSIYDSBIUQxCKQahLHifJAGegpZhuRYaAbCIKxfBMYgAf6EagjKgJfhyQYJULWFLSFIALw2DylKYgOjqSo+G5UWhCIyyXCNVyrGSbiTRWBlQxxOCLZAAWypLC0NIlSAOFLDDJ9cRBOqNAoua4bYjKIAIQiUBomGahajkMoYZAcKSAAIITabRoNUIiRBNQQHJa7QwidTMcw2GpSbAuC5reoaTJUS5NE5SNJkZRJFSYb5wG78DwnB6NYTkOJ5Hh+BztGa4JztKpbEp+AeMJrEWNgLDWKpdDiHhQjEGJsgcC4Jkaax2DsPJ+h8R4rlubJ3nqfg+m+F5DlWaB2nqPIOCYIwZhGXgoF2MphlgWYVBcbI3CoSpCjiZQ5E4cx4mAOJNiMcJfuEcxglk" +;
			"NxhGgYgXgYYZIG4HoGiICB2CGB5NHMZJcDYDYjHSWQ2k2Yx0l4OIOEOFJmgICpoAYAwzEycxEhwJ5KCgLJmgODgzHSXw4GKY4ElwNxOAiLJehKJJIjITYSmSaRGFCFJknkPJagsIRJByYILCQQx4mGApOHibIhg4DQkAyLArksF50kqDBOHOBJjDkXhDhCYIMA2eA+EiEQOAmYh6h2Z5JmYfYemeagGgAOEznyYs/imVJjhCTg5kyZIbk4YwckkMoKlKPIyECW4SHyZg5k6A4QmaJxpniRJo3CehCG6HAmnqHoqhuXZyhCeg+g+Ooei2K5rBqMIhiuKwKiyZQ4mmZ83C8K56HqPA5mmY4eAwOZbhKAQDCUG4DkScg8g6A4kmyNBOjOHJpDqKZLGKV4nk6Kxyl4OgtluAoziwLZLgye45GsepSl+NguAsZpujsbpbF6Tg8iyQhpAMJhjjOJpXDrmo0mqPxOiOMp+j8b5HmMBJBnAbAmmaQRwjudwNkIXp" +;
			"cAGaI/k6Q4nASQIuAOKp4CeUAyiyLQsAyMwwk4O4OnOQJskkMhzj8KQ7E6c48m3cp8jsMM7CyVwxk2cxMmMNpNA6TI3DGSpyEyNJwDKMgsHiMBAmkIwyDsKIPA0NxNDwdAshcUA8PaOxUlWNRdF8WpWHWTRjF6Vp1n0dxblOdJTksUpLHUDIXEuUhdhmII0gISwbDicw8g8M5THKXZsmOI4eYvRPBbGsPsXwbxuAPACMEd45xLCpGEO4KweRzi9A8DAJIYArgWBKKQA4ARPjlDiGALIkxYjhE6Bwcopw8jzGeJ8E41wfjRDoD0D4TRpD1A6CcKo0x6h9CeEAPgnwOD+CQHcOYcRqB5GWBYPgoxZjKB0EQZIOgoBeFcFcQg5g8COC+I0cI+BrivD4FAHQXRqAIEAIAgIA=")
			oAppearance:Add(25,"gBFLBCJwBAEHhEJAEGg4BegCg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQEQjBIwCKAUUhnESWZCjKLYDjSIYDSBIUQxCKQahLHifJAGegpZhuRYaAbCIKxfBMYgAf6EagjKgJfhyQYJULWFLSFIALw2DylKYgOjqSo+G5UWhCIyyXCNVyrGSbiTRWBlQxxOCLZAAWypLC0NIlSAOFLDDJ9cRBOqNAoua4bYrmtIEIRKAyTDLQdRyGSMMmiIEsJrOIyGaCRIgmYIDUrdYYROpmO4bDSpNhXJbWAShKyuJ4oKiJUjqQI0ThPd74HgOC4XRLHcLyPDcVxHC57XJSNqVbY2BgPMZrEWNgrCWIpdEKIxTDMGYsmcS4tladB6noHpPGeL4rlma52nwPZ/C8d5TmOdZ5nqPJvF8I4vkSUAokoUogjgLoLkcYRmFQXYylyLgsAsI5AnAPBOngPJtDuDpzjCbkjEg" +;
			"TJrDsTpTi4GYHiGWBkmoOwOkiDglgkIhoiYKIKmIc4yCCCAhhONgZgUIJjjoDwsEsMpUjgLhgFgHJVDWTYXHiJg8E8E5KEYPJkFOSgPgRNw+BGDQhEOPgXDuYQ5FIFIVGWCReFqFYlkkZhSgUIxJDicIEE8GQuEmAAKgMPJRDSUAyiyLQsAyUw8lAeoPHeJZ6DyTxDlCcoeCeM5OEeERkgmbhJhEDwqBKBoRGgegWgiIpoFkGoAhGZ5ZmydIeB4d4qHINIdjKWQDCeCgCg4Dg8E+GoGiIPgqBOXJ4XwaogncPZPGqLotisKpqiyJwqEqQ5+jaK5rDqVo3iyKxKlif4rmwCpGiuMJqHqJokD4ZgpAkAwmluU5yk6M5tAsRpSD6bRLFaVo1CuGp6lWNhrGsbo9jcbR7gaUo4myYhxjkQJJlIfIihGDwjnabo7m8C46mSPJPkscJ/jObxrmKX49m8S4OnEPxkhsKAACoWxzEyVA1G+fAnAqQpwkwNwOkObp" +;
			"sBiVoDAsVFcDSTRZAqIg/jGTB3B6R5yAyBwikichMhcIIpk+AoQiYKgMhMLJOHYYIyk4OAtGoE5rCaTZzgyZwmiiI4Sl4OQuCAaAYn9ixykoQpBg0U5OHiRxrm0N0oHUDRHFKU5xl0KJzkGTRihIAYCHQJxnEKABKkIfIhCkSY2mWS5ZlyXYlkyWp2g2LxlCgdgihcYJXGAdAEICA")
			oAppearance:Add(26,"gBFLBCJwBAEHhEJAEGg4BMUMQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAxDGLEEwsACEIrjKCRShyCYZRhGcTSBIAYRKASEmpyRAgZxFFiQZCgMDYJjSA4gTA/cIzVDUSQSBCESgNEwzULUchlDDIA7SYQRGyXDQbIRFCZaUjcAAYRaCEwTFDTJKoa6vLArewbEqOXzTNS2DYNUzrSLMdCBZ4uIAHWbZd51XbdV4XXbVbLieR5XKcdybIZdWTaNw7TwPDaNaT7PLIL4yHD3UbRdaGNq1TYtXhuJY9OxqNBzfIHTxZTjQNQ4ThuNh2J5cOTYNBaTQ7YaObjPNI1yxLWK3Ph0cBsWhvA6DZKOZJmdzxfIteK1AyDIQdXRPDb+JJ1HqPYYEwVhPCsXR4macAOhwLhdluCJxGCMRZB2XQekCZZjm8XYbm4BwTCGFZJl4ZA9noPADlGAJEDGTYzHSYB6l4R5BiQaRfFMNgJDuWI4BIBh1k8Y4+AwNwgCKcI/DC" +;
			"XoTDCbA7E6dg0jMLZLjgfghggIgohYJIIAsYpkj2BZMGMYgBgMGJAAEcxAEAgIA==")
			oAppearance:Add(28,"gBFLBCJwBAEHhEJAEGg4BM8MQAAYAQGKIYBkAKBQAGaAoDDQMw3QwAAxDGLEEwsACEIrjKCRShyCYZRhGcTSBIAYRKASEmpyRAgZxFFiQZCgMDYJjSA4gTA/cIzVDUSQSBCESgNEwzULUchlDDIA7SYQRGyXDQbIRFCZaUjcAAYRaCEwTFDTCKOZavLArewbEqOXzGMizLLNAyjOq+cKBZ4uIAHWbZd51XbdV4XXazarqex4HgeFwHCaSaDNNA0TS3DhleTzR7HMhuZ43TbTCDTM60LR4bbWO4hOxzNBfB6HZxJd6UPQwdoNUzjPTpTzTFa2JytUyPJawXY3Vr2QxmX4/X5VeBVfg9UarNqOO47bwLWrzA59Uy8OBVNaOURhlaPxdHOTxLnqXR0j6Z5uDGfQuBqPZLmaUxyF4CxuneAx/HiWQrjyThegWWY0lsbovlgLBPG6GZGmMOQfEOXJyDyDwyliOQvE0QxclkfweBgBgDD0C5zAiRgwBqJhxm4" +;
			"eBdgONZJgKDYykoBhzEwVgwAAToKgKMIwgkYh4hoKIKmKKIYisK5LDcdI+DSIIYgkcxAEAgI=")
			oAppearance:Add(30,"gBFLBCJwBAEHhEJAEGg4BTQCg6AADACAxRDAMgBQKAAzQFAYaBmG6GAAGIYxYgmFgAQhFcZQSKUOQTDKMIziaQJADCJQEQjBIwCKAUUhnESWZCjKLYDjSIYDSBIUQxCKQahLHifJAGegpZhuRYaAbCIKxfDbfwTJyNKAneLKBgmQ5WTDMUgBPDYPSVJiNKgACwoWpKZoJDTKcQ2TScZRuAADIzDCr5Yq6WpgAACEIlAZJRjoOo5DJGGQHCigABCEzhMZDNFSCZeQLSdy3HCyWYNOyLWiaRp8axzG6daBnehZdtyJajaZqOoaXo+W5NAZ7Hqed5XVbZXjgOJnLZNZq7QrGcRxXJ4DguB4PRrFchxHJcPxfE6ZYZwN63NrsdY/jiWhsHYWwNhacZAlMao2DoLg3AuCZJmScx5HyfovE+M5Rm6dZ7n2PwPh+S5LmKb42BuLZ3A6RZvAMOpOkOOJODQDQ2lyYh+k4OAiAob4gjgJgMgOYJoEYDYEmECBSBK" +;
			"BRbmgGJODOTQzjIARAk0YxgloNRNHMagGgmW4IiCYoKiKSImC6CpiniNgwgyYwolWOIJA2GIElsQJMhMLJPHSX4jgYQYQl+OQSEKERkgkHhKhGJJJCYTYSmSaREmEdJjlMPQDDCTE4lsfodlkdY3heDgJgIYoXmYSYGGWGJmGmJhohqWx5GyX4WAyKRckcMoNgMZJcDaTZDH4eIeieGZuH6HxoAmcoCh+aA6AaBIhmgagmgUN5nFMcJEhyUAzDyUQ1CAMxMlpYhqF6GYmCmKh2hyJ5pjqBoeiiKgKg6JopGqCoQl6JRpCMVQDDmToDiiP4WA0aZaCINxrHqZJai4K46mqPIvmuawGj2MJsAsEpCjETZYmiPwwgwY4gmkOodjOXJRHeTAjBSSIOg0eZalkNwtjsdpajebZLgKXo4G4S4OmaOIugMcgkDbm4QkhGgjFWfY0F3FwTC6C5jAoVY8E2CJqn4NgNjufwBkAMAsBcBJBnAPAnAYNpZiMYhVj4DA" +;
			"rliVB2C8MAAjMLZLjwXwZkYMYsHcHJHnGPIHB6SIyAyDwmkkcoMhMKpIlANAEICA=")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
333
How can I replace or add an icon at runtime

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:ReplaceIcon("gAAAABgYACEHgUJFEEAAWhUJCEJEEJggEhMCYEXjUbjkJQECj8gj8hAEjkshYEpk8kf8ClsulsvAExmcvf83js5nU7nkCeEcn8boMaocXosCB9Hn09pkzcEuoL/fE+OkYB0gB9YhIHrddgVcr9aktZADAD8+P8CgIA==")
		oSchedule:ReplaceIcon("C:\images\favicon.ico",0)
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00"):Pictures := "0"
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00"):Pictures := "0"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
332
Expandable-caption

PROCEDURE OnAddEvent(oSchedule, Ev)
	/*Ev.Editable = 3*/

RETURN

PROCEDURE OnAnchorClick(oSchedule, AnchorID, Options)
	DevOut( Transform(AnchorID,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AddEvent := {|Ev| OnAddEvent(oSchedule, Ev)} /*Notifies your application once the a new event is added.*/
		oSchedule:AnchorClick := {|AnchorID, Options| OnAnchorClick(oSchedule, AnchorID, Options)} /*Occurs when an anchor element is clicked.*/

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := ""
		oSchedule:CreateEventLabel := ""
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
				oEvent:Editable := 19/*exEditAcceptsReturn+exEditLongLabel*/
				oEvent:LabelAlign := 4/*0x4+*/
				oEvent:LongLabel := "<solidline> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAA+AAgAECMcTi4AMwAM4AjMGhEGOUVAA4AAwk8plcqihwAElg0wiUlOkOiUEgQvgcFhsKhkIhUQiUUnccj0gn0jmMagUlowAMNOpEfkMNkkmlEqrctjQmAAjAA5AA2sssHcbnkdq1Ln1QtVSjQAAEBA==>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>	" +;
			"650;</a><br>+ withdraw(amount: Currency)"
			oEvent1 := oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00")
				oEvent1:Editable := 19/*exEditAcceptsReturn+exEditLongLabel*/
				oEvent1:LongLabel := "just another label"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
331
Expandable-caption

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := ""
		oSchedule:CreateEventLabel := ""
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:AllowEditEvent := 0/*exDisallow*/
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
				oEvent:Editable := 19/*exEditAcceptsReturn+exEditLongLabel*/
				oEvent:LabelAlign := 4/*0x4+*/
				oEvent:LongLabel := "<solidline><b>Header</b></solidline><br>Line1<r><a ;exp=show lines>+</a><br>Line2<br>Line3"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
330
Display a custom tooltip
PROCEDURE OnMouseMove(oSchedule, Button, Shift, X, Y)
	oSchedule:ShowToolTip("new content",X,,"+8","+8")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:MouseMove := {|Button, Shift, X, Y| OnMouseMove(oSchedule, Button, Shift, X, Y)} /*Occurs when the user moves the mouse.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
329
Force hover-all feature
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",500/*exScrollHoverAll*/,-1)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
328
Disable hover-all feature (Windows 11 or greater)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",500/*exScrollHoverAll*/,AutomationTranslateColor( GraMakeRGBColor  ( { 1,0,0 } )  , .F. ))

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
327
Display a custom tooltip
PROCEDURE OnMouseMove(oSchedule, Button, Shift, X, Y)
	oSchedule:ShowToolTip("new content","",,"+8","+8")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:MouseMove := {|Button, Shift, X, Y| OnMouseMove(oSchedule, Button, Shift, X, Y)} /*Occurs when the user moves the mouse.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
326
Shows the tooltip of the object moved relative to its default position
PROCEDURE OnMouseMove(oSchedule, Button, Shift, X, Y)
	oSchedule:ShowToolTip("<null>","<null>",,"+8","+8")
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:MouseMove := {|Button, Shift, X, Y| OnMouseMove(oSchedule, Button, Shift, X, Y)} /*Occurs when the user moves the mouse.*/

		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):ToolTip := "just a tooltip"
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 13:45:00","05/24/2012 15:45:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
325
Clear Undo/Redo queue (method 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL c

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		c := oSchedule:UndoRedoQueueLength()
		oSchedule:UndoRedoQueueLength := 0
		oSchedule:UndoRedoQueueLength := c
		DevOut( oSchedule:UndoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
324
Clear Undo/Redo queue (method 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:AllowUndoRedo := .T.
		DevOut( oSchedule:UndoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
323
Removes Redo operations

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:Undo()
		oSchedule:RedoRemoveAction(13)
		DevOut( oSchedule:RedoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
322
Removes Undo operations

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:UndoRemoveAction(13)
		DevOut( oSchedule:UndoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
321
Record the UI operations as a block of undo/redo operations

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:StartBlockUndoRedo()
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndBlockUndoRedo()
		DevOut( oSchedule:UndoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
320
Groups the next to current Undo/Redo Actions in a single block

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:GroupUndoRedoActions(2)
		DevOut( oSchedule:UndoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
319
Limits the number of entries within the Undo/Redo queue

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:UndoRedoQueueLength := 1
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		DevOut( oSchedule:UndoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
318
Lists the Redo actions that can be performed on the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:Undo()
		DevOut( oSchedule:RedoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
317
Lists the Undo actions that can be performed on the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		DevOut( oSchedule:UndoListAction() )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
316
Checks whether the Undo operation is possible

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:Undo()
		DevOut( "CanRedo" )
		DevOut( Transform(oSchedule:CanRedo(),"") )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
315
Call Redo by code

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:Undo()
		oSchedule:Redo()
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
314
Checks whether the Undo operation is possible

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		DevOut( "CanUndo" )
		DevOut( Transform(oSchedule:CanUndo(),"") )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
313
Call Undo by code

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:Undo()
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
312
Save the calendar-event's properties for Undo/Redo operations, by code

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent
	LOCAL oSchedule
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:Events():Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
		oSchedule:StartBlockUndoRedo()
		oEvent := oSchedule:Events():Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			h := oEvent:StartUpdateEvent()
			oEvent:SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
			oEvent:SetProperty("BodyForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oEvent:SetProperty("StatusColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvent:EndUpdateEvent(h)
		oSchedule:EndBlockUndoRedo()
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
311
No color is restored for the calendar-event when Undo/Redo operation is performed

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent
	LOCAL oSchedule
	LOCAL h

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:Events():Add("01/10/2001 10:00:00","01/10/2001 11:30:00")
		oSchedule:StartBlockUndoRedo()
		oEvent := oSchedule:Events():Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			h := oEvent:StartUpdateEvent()
			oEvent:SetProperty("BodyBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,1 } )  , .F. ))
			oEvent:SetProperty("BodyForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oEvent:SetProperty("StatusColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvent:EndUpdateEvent(h)
		oSchedule:EndBlockUndoRedo()
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
310
How can I ensure that a specified calendar-event fits the control's visible area
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oPattern
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oEvents := oSchedule:Events()
			oPattern := oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):BodyPattern()
				oPattern:Type := 6/*exPatternBDiagonal*/
				oPattern:SetProperty("Color",AutomationTranslateColor( GraMakeRGBColor  ( { 224,224,224 } )  , .F. ))
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):EnsureVisible()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
309
LayoutEndChanging(exUndo), LayoutEndChanging(exRedo) or LayoutEndChanging(exUndoRedoUpdate) notifiy your application once a Undo/Redo operation is executed (CTRL+Z, CTRL+Y) or updated

PROCEDURE OnLayoutEndChanging(oSchedule, Operation)
	DevOut( "LayoutEndChanging" )
	DevOut( Transform(Operation,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule, Operation)} /*Notifies your application once the control's layout has been changed.*/

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
308
Turn on the Undo/Redo feature

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowUndoRedo := .T.
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
307
How can I make the header (date/group) always visible, so it stays on the top while the user scrolls the chart

PROCEDURE OnLayoutEndChanging(oSchedule, Operation)
	DevOut( Transform(Operation,"") )
	oSchedule:DayViewHeight := 2016
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule, Operation)} /*Notifies your application once the control's layout has been changed.*/

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/20/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
		oSchedule:ScrollBars := 2/*exVertical*/
		oSchedule:ShowViewCompact := 3/*exViewSingleRowLockHeader*/
		oSchedule:DayViewHeight := 2016
		oSchedule:TimeScales:Item(0):MinorTimeRuler := "00:10"
		oSchedule:DayStartTime := "00:00"
		oSchedule:DayEndTime := "24:00"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:ApplyGroupingColors := .F.
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
				oGroup:Title := "1'st Group"
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oGroup1:Title := "2'nd Group"
		oSchedule:DefaultEventLongLabel := "<%=%256%><br>Group's Caption: <b><%=%262%></b><br>Group's Title: <b><%=%263%></b>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 01:00:00","05/24/2012 02:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 01:45:00","05/24/2012 02:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 02:30:00","05/24/2012 04:30:00"):GroupID := 1
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
306
It appears that Width property of the Group does not what. What am I doing wrong
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1,oGroup2
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Title := "First"
				oGroup:Visible := .T.
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Title := "Second"
				oGroup1:Visible := .T.
			oGroup2 := oGroups:Add(3,"Group 3")
				oGroup2:Title := "Third"
				oGroup2:Visible := .T.
		oSchedule:DayViewWidth := 144
		oSchedule:Groups:Item(1):Width := 48
		oSchedule:Groups:Item(2):Width := 48
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):GroupID := 1
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):GroupID := 2
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
305
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:ImageSize := 32
		oSchedule:Font():Size := 16
		oSchedule:EventsFont():Size := 16
		oSchedule:TimeScaleFont():Size := 16
		oSchedule:TimeScales:Item(0):Width := 128
		oSchedule:Images("gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOqNUqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlwyV21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+CMPo9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9" +;
			"FEKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5y7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIkFgTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMtNhCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/Xi" +;
			"oW5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X4VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT6/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUVDNKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJy" +;
			"T8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5WzlffEkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC6I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8RgH5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVW" +;
			"RJNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==")
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00"):Pictures := "1/2"
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00"):Pictures := "1,2"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
304
ImageSize property on 16 (default) (specifies the size of control' icons)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:ImageSize := 16
		oSchedule:Images("gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqdSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVttmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8acvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtT" +;
			"GsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPnwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg==")
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00"):Pictures := "1/2"
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00"):Pictures := "1,2"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
303
Is it possible to show a different background color for alternate days

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SetProperty("Background",41/*exScheduleDayHeaderBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",42/*exScheduleDayHeaderForeColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oSchedule:SetProperty("Background",159/*exScheduleDayBackColorAlternate*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:SetProperty("Background",160/*exScheduleDayForeColorAlternate*/,AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oSchedule:Calendar():Select(3/*exSelectWeek*/)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
302
How can I select all events

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
		oSchedule:SelectAll()
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
301
How can I unselect all events
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
		oSchedule:SelectAll()
		oSchedule:Selection := ""
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
300
How do I immediately select a newly added event

PROCEDURE OnAddEvent(oSchedule, Ev)
	/*Ev.Selected = True*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AddEvent := {|Ev| OnAddEvent(oSchedule, Ev)} /*Notifies your application once the a new event is added.*/


	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
299
I would like to know if this allows me to setup a number of room(column). Let's say, i need to go up to 10 rooms is it possible. Also, the possibility to have a complete week of that 10 rooms.

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oGroup,oGroup1,oGroup2,oGroup3,oGroup4
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:SetProperty("BodyEventForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oSchedule:DayStartTime := "09:00"
		oSchedule:DayEndTime := "14:00"
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/24/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
		oSchedule:ScrollBars := 0/*exNoScroll*/
		oSchedule:ShowViewCompact := 1/*exViewSingleRow*/
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"1")
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oGroup:SetProperty("HeaderBackColor",oGroup:EventBackColor())
				oGroup:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup1 := oGroups:Add(2,"2")
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 204,0,0 } )  , .F. ))
				oGroup1:SetProperty("HeaderBackColor",oGroup1:EventBackColor())
				oGroup1:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup2 := oGroups:Add(3,"3")
				oGroup2:Visible := .T.
				oGroup2:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 153,0,0 } )  , .F. ))
				oGroup2:SetProperty("HeaderBackColor",oGroup2:EventBackColor())
				oGroup2:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup3 := oGroups:Add(4,"4")
				oGroup3:Visible := .T.
				oGroup3:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 102,0,0 } )  , .F. ))
				oGroup3:SetProperty("HeaderBackColor",oGroup3:EventBackColor())
				oGroup3:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup4 := oGroups:Add(5,"5")
				oGroup4:Visible := .T.
				oGroup4:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 51,0,0 } )  , .F. ))
				oGroup4:SetProperty("HeaderBackColor",oGroup4:EventBackColor())
				oGroup4:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00"):GroupID := 3
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 4
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 5
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
298
I would like to know if this allows me to setup a number of room(column). Let's say, i need to go up to 10 rooms is it possible

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1,oGroup2,oGroup3,oGroup4
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:SetProperty("BodyEventForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oSchedule:DayStartTime := "09:00"
		oSchedule:DayEndTime := "14:00"
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Room1")
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
				oGroup:SetProperty("HeaderBackColor",oGroup:EventBackColor())
				oGroup:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup1 := oGroups:Add(2,"Room2")
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 204,0,0 } )  , .F. ))
				oGroup1:SetProperty("HeaderBackColor",oGroup1:EventBackColor())
				oGroup1:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup2 := oGroups:Add(3,"Room3")
				oGroup2:Visible := .T.
				oGroup2:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 153,0,0 } )  , .F. ))
				oGroup2:SetProperty("HeaderBackColor",oGroup2:EventBackColor())
				oGroup2:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup3 := oGroups:Add(4,"Room4")
				oGroup3:Visible := .T.
				oGroup3:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 102,0,0 } )  , .F. ))
				oGroup3:SetProperty("HeaderBackColor",oGroup3:EventBackColor())
				oGroup3:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
			oGroup4 := oGroups:Add(5,"Room5")
				oGroup4:Visible := .T.
				oGroup4:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 51,0,0 } )  , .F. ))
				oGroup4:SetProperty("HeaderBackColor",oGroup4:EventBackColor())
				oGroup4:SetProperty("HeaderForeColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,255 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00"):GroupID := 3
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 4
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 5
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
297
Please could you let me know if it is possible to change the increment when the user scrolls the mouse wheel as its to slow by default
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:VerticalScrollWheel := 3

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
296
I am using the DefaultEventLongLabel property to specify the event's label. Is it possible to change the way the event's label is displayed when it is an all day event (sample 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1,oEvent2
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:AllowAllDayEventScroll := 4416/*exAllDayEventWheelScroll+exAllDayEventMax4*/
		oSchedule:DefaultEventLongLabel := "<%=%><%= ( %3 = 0 ? (`Group's ID:` + %4 + `<br>Group's Caption:` + %262  + `<br>Group's Title: ` + %263 + `<br>` + %256 ) : ( (`Group's ID:` + %4 + ` , ` + %256 ) replace `<br>` with `,` ) ) %>"
		oSchedule:DefaultEventShortLabel := "<%=%><%=  ( %3 = 0 ? (`Group's ID:` + %4 + `<br>Group's Caption:` + %262  + `<br>Group's Title: ` + %263 + `<br>` + %256 ) : ( (`Group's ID:` + %4 + ` , ` + %256 ) ) replace `<br>` with `\r\n` ) %>"
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:HeaderGroupHeight := 1
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Title := "First"
				oGroup:Visible := .T.
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Title := "Second"
				oGroup1:Visible := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):GroupID := 1
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):GroupID := 2
			oEvent := oEvents:Add("01/10/2001","01/10/2001")
				oEvent:GroupID := 1
				oEvent:AllDayEvent := .T.
			oEvent1 := oEvents:Add("01/10/2001","01/10/2001")
				oEvent1:GroupID := 2
				oEvent1:AllDayEvent := .T.
			oEvent2 := oEvents:Add("01/10/2001","01/10/2001")
				oEvent2:GroupID := 2
				oEvent2:AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
295
I am using the DefaultEventLongLabel property to specify the event's label. Is it possible to change the way the event's label is displayed when it is an all day event (sample 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1,oEvent2
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%><%= %4 < 0  ? `<b>` + %256 + `</b> <off -4>(all)` : ( (`Group's ID:` + %4 + `<br>Group's Caption:` + %262  + `<br>Group's Title: ` + %263 + `<br>` + %256 ) replace ( %3 ? `<br>` : ``) with `,` ) %>"
		oSchedule:DefaultEventShortLabel := "<%=%><%=  %4 < 0 ? %256 : ( %3 = 0 ? (`Group's ID:` + %4 + `<br>Group's Caption:` + %262  + `<br>Group's Title: ` + %263 + `<br>` + %256 ) : ( (`Group's ID:` + %4 + ` , ` + %256 ) ) replace `<br>` with `\r\n` ) %>"
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:HeaderGroupHeight := 1
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group 1")
				oGroup:Title := "First"
				oGroup:Visible := .T.
			oGroup1 := oGroups:Add(2,"Group 2")
				oGroup1:Title := "Second"
				oGroup1:Visible := .T.
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):GroupID := 1
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):GroupID := 2
			oEvent := oEvents:Add("01/10/2001","01/10/2001")
				oEvent:GroupID := 1
				oEvent:AllDayEvent := .T.
			oEvent1 := oEvents:Add("01/10/2001","01/10/2001")
				oEvent1:GroupID := -1
				oEvent1:AllDayEvent := .T.
			oEvent2 := oEvents:Add("01/10/2001","01/10/2001")
				oEvent2:GroupID := 2
				oEvent2:AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
294
The Event.Caption does not support HTML, and so if using in DefaultEventLongLabel/DefaultEventShortLabel no HTML is applied, instead HTML tags are displayed as plain text. What can be done

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DefaultEventLongLabel := "<%=%><%=%5%><br><%=%256%>"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 10:00:00"):Caption := "textzeile1<br>textzeile2<br>textzeile3"
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 11:00:00"):Caption := "textzeile1<br><fgcolor-FF0000><b>textzeile2</b></fgcolor>"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
293
Please could you let me know how I can remove/hide the time scale/marks from the scheduler. I am creating a month view that only requires a box for the day and no time markers required

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:TimeScales:Item(0):Visible := .F.
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/24/2012"
			oCalendar:Select(2/*exSelectMonth*/)
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):ShowStatus := .F.
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
292
Is it possible to lock down the view to allow resizing of the days column but not to allow the scrolling outside of the dictated time zone

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/21/2012"
			oCalendar:Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:ScrollBars := 2/*exVertical*/
		oSchedule:ShowViewCompact := 1/*exViewSingleRow*/
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oSchedule:AllowExchangePanels := 0/*exDisallow*/
		oSchedule:AllowMoveTimeScale := 0/*exDisallow*/
		oSchedule:AllowResizeTimeScale := 0/*exDisallow*/
		oSchedule:AllowMultiDaysEvent := .F.
		oSchedule:SetProperty("Background",36/*exScheduleBorderSelColor*/,oSchedule:Background(37/*exScheduleBorderSelColorUnFocus*/))
		oSchedule:TimeScales:Item(0):MinorTimeRuler := "00:10"
		oSchedule:DayStartTime := "10:00"
		oSchedule:DayEndTime := "14:00"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
291
I would also like to control the column view to only show 5 days at a time with a side scroll, how would I achieve this please

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:ScrollBars := 2/*exVertical*/
		oEvents := oSchedule:Events()
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
290
Can I force the schedule grid to only show a single day and then to step through each day using either a custom button click or using the built in schedule calendar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/20/2012",.T.)
			oCalendar:Select(5/*exSelectFocusDay*/)
		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:ScrollBars := 0/*exNoScroll*/
		oSchedule:ShowViewCompact := 1/*exViewSingleRow*/
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oSchedule:AllowExchangePanels := 0/*exDisallow*/
		oSchedule:AllowMoveTimeScale := 0/*exDisallow*/
		oSchedule:AllowResizeTimeScale := 0/*exDisallow*/
		oSchedule:AllowMultiDaysEvent := .F.
		oSchedule:SetProperty("Background",36/*exScheduleBorderSelColor*/,oSchedule:Background(37/*exScheduleBorderSelColorUnFocus*/))
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
289
Can I colour the background of the schedulers grid from a time point to another EG 9:00 to 12:00. This is to show users that they can only book appointments in this time zone

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oMarkZone,oMarkZone1
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:Calendar():Selection := "06/27/2012"
		oMarkZone := oSchedule:MarkZones():Add("zoneA","06/27/2012 09:00:00","06/27/2012 11:00:00")
			oMarkZone:Pattern():Type := 0/*exPatternEmpty*/
			oMarkZone:LongLabel := "Yellow"
			oMarkZone:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,255,0 } )  , .F. ))
		oMarkZone1 := oSchedule:MarkZones():Add("zoneB","06/27/2012 12:00:00","06/27/2012 13:30:00")
			oMarkZone1:Pattern():Type := 0/*exPatternEmpty*/
			oMarkZone1:LongLabel := "Green"
			oMarkZone1:SetProperty("BackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,255,0 } )  , .F. ))
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
288
My programming language has the following format for date 2012-05-24-13.04.06.810000 every other format returns a compiler error. Is there a possibility to use a string for the date

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oMarkTime
	LOCAL oMarkTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := oSchedule:ExecuteTemplate("#5/24/2012#")
		oMarkTimes := oSchedule:MarkTimes()
			oMarkTime := oMarkTimes:Add("timer",oSchedule:ExecuteTemplate("#5/24/2012 11:35#"))
				oMarkTime:Movable := .T.
				oMarkTime:SetProperty("LineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oMarkTime:SetProperty("StatusEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oMarkTime:SetProperty("TimeScaleLineColor",AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,255 } )  , .F. ))
				oMarkTime:TimeScaleLabel := "<fgcolor=0000FF><b><%hh%>:<%nn%> <%AM/PM%>"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
287
How do I display a picture with transparency

PROCEDURE OnPictureClick(oSchedule, Key)
	DevOut( Transform(Key,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oExPictures
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:PictureClick := {|Key| OnPictureClick(oSchedule, Key)} /*Occurs when the user clicks a picture within an event ( Event.Pictures/ExtraPictures ).*/

		oSchedule:BeginUpdate()
		oSchedule:ShowSelectEvent := .F.
		oSchedule:Calendar():Selection := "05/24/2012"
		oExPictures := oSchedule:Pictures()
			oExPictures:Add("pic1","gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQKYZpIZDKBJkIgKByN5mNJsMsKPABVqXBI4KjrD7HL6GWKPJKiCIhMiySidKxbOzZZJWMLsGL2FqyLjZMonNa2CyiZDOUqsQqUEq0ZCNISFXDIFxzZ4hUrbdrefZ/fz3ZgzZ75Tz3XjvHZnZznPieb55AKgAqmRyOOzEhR7XirWaWQQMTa+QIhDbZOZAAoYUCPDAQG7FXI4JRrNCoIRdPyyFr0AYifDUKZ+PCufK4RReALLUbtdBHSrGTCCNKqT4MbRqUxxQx+CAAEQ2VCBbxqGaLYDZNgzFbCbLDarRCrqMYMM6cWqpHKUDqhZjnVijEoLcp0FCjVg2OYhTjN/QWk4bo4iseBsAcABIDoPA5g2HgADIkQfDCNxwkEQYnFmAIAB4OJHGcKAPioGRKFKdh2g6UB8iiZ5QkYQp3gKWhDlsWYmAARBcgCIAUniVpmiSA5AF3A4wG8P41nGWwDDA" +;
			"W4MAAIpSG+bRzBoGx3AeCJhh6C4ljCUJGnSRBUFKAIQA6EgIHMWBoHqYgAngHJDCALBmhCCAfHOARAScUBvAmc5zHYXxoguXQ8DEMIAH8dI8HmP4/AyQJAEAYAoHqRByEQGJiECBAzAkKIpBYNIcikAp8kcZhDn4EBChmUoMgqHIqhiWoIgaDImgyVQImaRw/F0EZGCcSw3DaM4Kn6GBBhwYYZDGZo3C+RgOAmNQnhYeYqgsTZenEVgSFYLo2CydhGg4OROF2HJjlydR7i+cJjDGFo8BgHgVl4Po+DufJRgcbQOlkCxyKuCJNAsdwIhSC4mgieYKkeHJWD0Ih8BQaYYkkMYppwTg0EsFhJC0SxEkgeodDSFpTheV5SDgLBIieRIigyVo5CeOpymoWhtEQfRACMR4zE2KxRnsV5dF2ehFCeC50G+GBkBiZgaCUGYnBySY+BsdIuEkJJJDSSRsjGeYqEWOhliYVYOHWDYbFuNhFmcS5siqbZrnGLYOh0Dp" +;
			"PhyXo7D8d4ZHGXR1CcdRAnsMh7GELwIHiSx7CiXY0HYNZ1nOcoPg0SB+CWLwwGqUpbFAQJwEeEImlCVQwk4cJxAiFRIhMS4ulGYRRlmMQVDEHZxG8YxXhIaQSniLhIiaGwnDiJZGicZYnjeZw8D6OoSkWEIthwI4emudwtGwepNhuLQ3F8Zojm4bQrhALo0D0HZwCcJwoimeI0ASWR6CAJkJQORfAiFcLIXgahaiGCgMsKIpw8DPH8H4Pj2BhjrBMGQGYfxFjuEGIsB4rxbg+DSFsPAxBtChHoAQaYmRojVG0D0e6JALjVD2K0F4qxfjjGyPIRY/QXi1AOAILwFQGgOF8KYDwOgdBsHmCYcobRtjIHoGgZAmBgi7HgPcWoHxTAmCQCcVwTgDB+FYJgfQMAOj0F2PoZgkRMjeKQLkWATwdDzEkPMF4FxzAXDGJYfAlgPAuB+FkeIWxuizC0LkUwvQbD9ByHIDouxvBCBgCMCAvh4CXCMEgSA0BJDEH+As" +;
			"fwMgfjhDeL0Ro/xkgvH4JMXA7RYjyAONgPAWhfjyCuBEcAFRSAWE4BIOwEAUgTCaIYfA4wSBUAcAsDowQOBFA4J0Hg9h2B4EmCQTYVBdB0FwIwU4rByjJGmHIRQ8gJAKB4IoZgShaDKAQOUIolQkjVBuGoSw6hugaFaJoeoWgajaDKDoO4dB5j0FcJ0Zw1Ang3CQDEdgNQnA6EmHgGw4QuCiCSAKFIXBgilEwGcLAZAtDmC0N0WgLhaApFiK0HgfxniuGKP4GIvhrhhGgHEZgaRtB5GSBUcIhg5BnHkOAeQFB5A6DiEEao2xoDHH0KIQ4bxYBfFEP8RogB5BfA8AQHwvwqAZBIBURgCgwgPAqAkKYCgfgTHCBwDIegcgjFUDQXQPQzA4DsCkDwnRABNAwE8OgTw5C6AkJEPgPRSg+DqCANoMRBjuHUKEJglQWDrHYOATg3BuDGDWEMa4CQbj3HMB0Z4Pw5jLFuCAWYsB/D2DgBEUQmB1iuDEMkfI0hUC" +;
			"yEkPIfwihKgqGsGobIGhNhfFGGoZY6gDDuGWDceANA1A2DyDUM4txaA/EwG0bo0wTDXEcH8Sg/BcD2GSHQC4pgtiuGOOkNIRg3hbG+MIGYjhzgaBeHwL4FgHAMAYFIfgJh4nJBQGkfAwRNiFAiO4KIlhoiKFiOoO4EwPiYGONUE4RATg6BOMcUwEApgZGmP4X4lxnjYGaLIZg7RNirH6FQG47xZCAC6OQLK5B1BYF8LgOQZAqh0FqGcBo/xMhpE6HsXomQwBKCwIcfA6w/DxA+IURAIxwgmBSCMKoJgOhFD0JMeIkQdhREwFAEQKRFioAYKkJIqQlhpBYFEPYUQui0GCGgFI9BlCOAUDoS4nRhA7HOOkFYdguhgEgGYUgZB2DeE6IIYIMQEgyAiPYHgYgnBlFiNsPYghKiODqISfddhPgVEOCQE4hg5iWHWPEfwfB3BgFYPkAIWQPAOC8BIb1MwrD+QsNEQ43ACAMAKGUQgsBhBoHCGUSNrxBBoEqNgG" +;
			"o8QMAJF+MMOwRxGCOFUBwHYdhODvDwMEBILgk21AKKkOI6RrgyD6LIDoJxNjkDUOQF4yAXgoC4FMXgqhKCiE4KACQow9D5CoJgLQiA9CwEMLUYwOxmhAFaEAdoSwdBBF0CEPQEWWDrGOBoEgGhTAaDyBsPoNgXA4CmHIWw+guCDCSJsNIjxsgADcNQPg2hxC2FKLACo2hNDFEMMcKw/BeCcE6LYXoGRvDJGCN8GIxgUjYAyOUbg6BpDrB0OYWw5AgjtGSOoEofAgjRG2NgY4+RRCfBeKUN4qQvi7H+HAYAchwCOCWAcQQZBBFiG4EIUYww3CFFuEQSgRAlBdDMIwCQiRrCMGCMcIwxhuiKDeE0PAlxCC8GFZQS4YhIgaEkJYS43hLAxE8EkTodQUBbBWMcHoNxy0lHqOETYyAeDeD4I0AQlRhD0G2E0O4PgKCjHeEoSgmBKCGEsBUS4vxUA8C6M0K4ox7irD+O0VouhfD7FUA33I+gmiXE0IsLY1gtip" +;
			"G0CQbQLQPjFDuDQHw2RtjFGsK0bw4x9j0CcO8N4/RtBnhSgvAcBehmAOh0ANgiAhAnhih8gwh1gbhugRhSBRhDhjh2Bvgyhfh3gPhThOBIBOA6B9gsAYAah+BdhlBWBtAuBoBThtB8gnhFheAlhcByh6BKhvAahNBnh5B1gJB1g+hCAsgAAbB1gOguAJhIAoAmhFBvqzACABh0BlgFggA6CaBvBQA7BDEHAaA0AABoAcgGBEACg5AAgYgZgLAIBKgFBBhWh9AggCAIBoBNgAANA9AJhwABBxBwAKAYAAALCJu9ADAYAFBLExBEAiBEgmBEgxBEANBENbhmgJh5gJBNgJgzgJBfgRAvAhpKhnAQg5AIpkARASA/ASKGAPBJhZBIAdBJAbARh7n4BIhshkAnAZDVgkBZAUg5AWh5AVB5AEgFAbBFA4BFACglA5hlAfAVAChVAtBVAig1AQh1ABBNB+gaAcgUA7AqAbAWgTg2gfB2gSB9AIBdA1BDh2BHAn" +;
			"BdAZg6Apgdh+h0g7lCBoAXh3BJBugahkBwBihkBkAsBYgtg/h7gNATBNgkhIgUhBg0gzI6BZgJRJglhvAvARgrAtBrALBbBFh2BxB2BZh9hFAcgOAcAdAcgCgcBzhcAVB7h9g5BlgxhohsArgDh5A8heA8BKh8hMB8gzB8APgPBmAdByAShQAVgUAWMMAaAThuATgpAWhNASgLARB3ASAwg+AsEwhiAoimBTBxhUAJhEAJhVhJBPhSBTBSBjgyhvBPlWAbgUgfhRhYBUAkAoBTAoBQgrgygfyhgTBShXBSgwhUh0hWgKhTguhQBphRAdhWAjhoBvg1gQA0g0A1AKACAehLgegzgrgmhcAmBahmB+A4AihzAhhLA6ArAFBrAfAbAyhbAPh2hYB7BzB8AOBDgwhTg+hnALAXB8hXBph3AxAPA/BPA2gLg7A8hxg+AlAXANB9ARB+A6B+h5gBgEBAg9BLhFBBAUghAWAhANhhhsgRgBARBvgjAUgiALhjBp" +;
			"Big8hjhHgSA1ASBqgvA4gkhzAmgkglhRgnB7hlh8BKA0hNgxhMBtg7guh5gjAzhPAtB/BJgBBmhhBvAdhDAighg7g2glAzBlg+AVhUAVAphVAHhqURAGhvh7g0AgAahvA2FigMg2BhhaBrg6AMAegTA6AVi5B6BlgehNgMgoA9gigMAZA/hBgMgGg+hfgbAvAegSgbApgegXhZhqBagzBYgogfgwB/Cwg7hgh/hDA/gTg5B+gNh/gXh6B8hbh8B/hEhfASg2h/BHh6BfhZBbhuAjB/g9h7BbBth0h/gbh2Ayh/hAh+h/gnh/Ajh3AwgnA/gigPBzBPBVBegigfA1h8BPhshr1HgNhvAxB/hoBdgGgBhZh3sUhMh0gmh1hLg9hIgchQB7BthugQh5hbgugth6BTgLi/ALBkocoPgCA/BQBfhmh+hXhzA/hzh+g7B1hbgch/heh4gvhEg3hsBfBOgbA2B9ArhrANhPTSKXAMg7A+Bhh4AfgZh/AVhdg/hz" +;
			"B7BTBsgfh5B+gdhZh/g7oQBogSh/BMrPhUhYBshvheBfA9AThph7ANhvhNgog/hZBNg/hdhvgIAxhjB2hHBhhOBtg1gPBCg3hZBDAmhDg0gfhNhAg8xMhgBiBvkig7BGgKBHBDBfBJhDBWhPg6BPxKAvBOBUhPB5hMhLhAh0mXBXAFhhB/A3hXBIhwB9AAgUBKg4AHA8AMgdgDhuB8hGghhcACgUAAgOA4AAA8AQABh2BQAegHA2BOB9BYhxhrBAA/hfg7hah4BCBrAxgABkAdAcK4BtgsAshdhZCSAVglgFgbASgeB3AQAPhNhIFJ2TBnhahchDBBh9gQBogABSAlhhBUgbBLANBvA+hbh+gAgWBzB5BXBWhFh/knAAAChpAkgiAggqAsAEhigrAkgmASAygKB/BVhVB7hTBNg3BNA2hQBOg4BAAAgiBhB1BIA8BMgCAxBxAGAbhBAJgJgHBnAkhyhQBjBhgmAoBBgwgaAPBghJgLgShogYAxAIAZAZ" +;
			"AghLBhhQAEgPAEAwgBAwhIgkBBBwhwAYBhhsBoBhhtAbAqArgrh8hehLBVAqA7grgXhPA+Bkglh+h6i4hfh7hehygvgMB9hPhEh9gXh/AKgihUhBh/A1hwA1gwAdh8ASg4AEB+ADh8AAB+AFh8AThHBxg7B4BmhFBZABAABjgbgwh2gBg4A8grArB/3UgDgQBfgzhpBzhpgUhOYogKBlBZB+ARgAA+NxgDhZgWBcgKg9BfgjBRhogngj4zBCg6AfApAzBwB+OiBtA2AbA/hHqYg6ADBZBMBNgfgfAfBfByh4g8BUAiAkgyBMBAg4AcA+BsgyAZBGgRgFA/gbAIh/h6h2AMh/huheg9hbB6h6g6hJhA1zAc5RhhgN5TBLASB3gIXagQAMAGBdAghJhUAvhahohBAiBshzBzBTB4A9AzhTgDh9AOAZBjBfAPAOAeA2ZlBKAJB61xhBE+gmhKATiWhnBvhlhrAcgMghhGg2hBAQA4B85xBWBQBQXiBIAcho" +;
			"hkhih/gN36hyBqhiDRgABQgoB0AJAKBvAbAkAxhlBzAVgVAVBJA2gbANg5gdAOAWBrh2gzAW6HBIiagwh9hRhiBTBGAVgAgNB3g5giB/grARBlA6B/gsBhhjaTB2A0AaBQhahah6hWBVBVBlAUB+hNAEh2BVAtkNhSgFBxAAOjBOg2gxBhBTgnAzB9ADABAAh/BohRgjgzBPhrhVgaAaAagihWArSxA0gGhzB3gBhgAdhVPTgOhgA8gShjAsgcgjhUhcBdg+zcBshsgsgtgvAvAPA5hdguBWBUs1LxBbh7gsBahLhzBtjjBpg9AABDgjA6hVBtB0hygt7IAhAz7Jg3AkgkhEtvh5hYhRBhAhBzB6g9AsgwA3hng0AFgNB6hHB7hRBrgxAcBaAGVWhYgehXgjhLgcBvBththxhd7egugB7gBThoAzh57igHA5A3BYgsW8gshMgiAgBZgQh0AKghA3hLsfAGAwAWB0ARgagNBXhWBWAEB+7yBTga7zhpB6" +;
			"BqBKBmh0g6AZAxBdhuhnAvWAB6huA0BGhIhGBzuRgcgThpAZAABigYAUhThRhbcEgEBmgpgHgWcHgsAUh+g6B8AsBoA+B6gGgGgxBTB6hVA2h2ACZYAxhSAAhIASB0gngQAphyg0hf3pAJgrAMBwg4BZAYgVAihihKgVhzgMBhg/h9AAAqBRh0BbgTsbgHhwAbhFATANhNBMhMhYgwhlhihRAThT6WBahYh6AzhZgLBAA7h6ALhJgLBZBnhzhthAhAhGB7h7htOfA0hzh4gxhJgBg6hThzBlg4hchyBFc/AsA0hIBihGEnB8BQgvAkgBggAhAmBvBrgngNBGhTgTAThWg1B5gsgAhABRBTgZB+AYAZBxBMBMhPBbJ9BohlhIB/Awh+g/gOAAAuBhhBhUB2gXBSgagKgXgXAXAtA5AXAdBvhCBJBKgrgqBEAHhjBjhO7dBthhBGh7B7BaAdgAzWgxBthXBTACAoAuAuAOBBBxgXgpF2AFhEhtgHgDACg1" +;
			"AfARAiVxAHA4Af9zhc0CB3BOAoATApBWhCp0gJA+hTA7gnAxhWgEhqgEgQB+BzBweFANBGBahVgZB6oehXBwBrAphiAkBCAhhbB0AEBLA3guBfg/AtArgvgXhVGUhfBPhwBlHFBYhcBlh0AxAYgb6phyA0A3g3hPgAAEA9ACgpgqBNAPAPAWBuB1B1BVBUgNBbgvBUhvgPhqgdheBoBxgUAFgiAsAPgN8VhvhxBWg4ANhRBSA+hNB8AwASAjh+B8B8AcAMhMg3A0DThhgxhRgGBahxhggBApBEWFBmhS+/BBBhhwgIB4BgAYAJhJgOA2BDARgAhmF6A4gGB8Bo/Jgrg/Bfh/hXBnA8gOAEAWgZAUAIH8ApAshmA8Bjgcg5/Ugehh/WB3gxhNhugiAaA7AcBFgcgRADhSBWAThPBzgyBPALgSAABHABBRhCA72hBpBpApA/4BBrgBhKBFgnBfAZgYA2grgMhWBAgkAChgBBBWhzBiBkh0BghxeEZdALg9" +;
			"iNBvbw7whhhvBbgwgIhygrBfgrBTA6AhgvhjAYg+haBAF4vH4cze70OQyenwMnkQoiQrzCFQA9SUXGy9CMMAuywARTOoQYIFaLgw9RErSKcCginiCw7MHqeDoXjsuW69iWxWKDgAjGAaQQvTiMBuN1ugSmcgaaDsOSyDjA/Tm2FEN2E33AMEwTlUtAACAgAVAM2yhh0O0gVFuJCQHnogCO4QonwkVR4ShoaiOHmq/iCPTwiQmuBmgXGjgqjh2RA2HCUfHoiES4gi7EgcyU/xymE4UwSNCU3EMVA2YikFCiSycVCIBBGR2CdGQUBU9wqWVswAUgRIwGwIlkBFmImECyGcEUL3SESm1HIOFS9kgxRQsQIJCosyAmQg8HIslA+RYOEI6EwtS2cHyiiYJHAlAC0iiAUmEzEiksmHUrWUKBqAoih0OMyAIAAKSQFwnRTAEmS9Mwa36GQOhhCc5BcA8gAcFAfTJCEOSiDEsSaNEuC0EMrjRD8XB4LYziiOIJgN" +;
			"ACNAAEkRROEQrhCGAgkBA")
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):Pictures := "pic1"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
286
I need a border around each event/item on scheduler. Can you direct me to propery to use (to all)

PROCEDURE OnAddEvent(oSchedule, Ev)
	/*Ev.BodyBackgroundExt = "[frame=RGB(0,0,0),framethick]"*/

RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AddEvent := {|Ev| OnAddEvent(oSchedule, Ev)} /*Notifies your application once the a new event is added.*/

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:StatusEventSize := 0
		oSchedule:SetProperty("DefaultEventPadding",-1/*exPaddingAll*/,4)
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00")
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 13:00:00")
			oEvents:Add("01/10/2001 12:30:00","01/10/2001 13:00:00")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
285
I need a border around each event/item on scheduler. Can you direct me to propery to use (distinct)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:StatusEventSize := 0
		oSchedule:SetProperty("DefaultEventPadding",-1/*exPaddingAll*/,4)
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):BodyBackgroundExt := "[frame=RGB(0,0,0),framethick]"
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 13:00:00"):BodyBackgroundExt := "[frame=RGB(128,128,128),framethick]"
			oEvents:Add("01/10/2001 12:30:00","01/10/2001 13:00:00"):BodyBackgroundExt := "[frame=RGB(0,0,0),framethick]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
284
How can I change/specify the caption of the groups, when the user clicks the drop down button

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"Group A")
				oGroup:Caption := "<fgcolor=808080><c><b>Group A</b><c><br><font ;6>France, Romania, Albania and Switzerland"
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
			oGroup1 := oGroups:Add(2,"Group B")
				oGroup1:Caption := "<fgcolor=FF0000><c><b>Group B</b><c><br><font ;6>England, Russia, Wales and Slovakia"
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00"):GroupID := 1
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
283
Is it possible to hide the group header, but still display the groups/captions

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oGroup,oGroup1
	LOCAL oGroups
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SetProperty("HTMLPicture","pic1","gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQKYZpIZDKBJkIgKByN5mNJsMsKPABVqXBI4KjrD7HL6GWKPJKiCIhMiySidKxbOzZZJWMLsGL2FqyLjZMonNa2CyiZDOUqsQqUEq0ZCNISFXDIFxzZ4hUrbdrefZ/fz3ZgzZ75Tz3XjvHZnZznPieb55AKgAqmRyOOzEhR7XirWaWQQMTa+QIhDbZOZAAoYUCPDAQG7FXI4JRrNCoIRdPyyFr0AYifDUKZ+PCufK4RReALLUbtdBHSrGTCCNKqT4MbRqUxxQx+CAAEQ2VCBbxqGaLYDZNgzFbCbLDarRCrqMYMM6cWqpHKUDqhZjnVijEoLcp0FCjVg2OYhTjN/QWk4bo4iseBsAcABIDoPA5g2HgADIkQfDCNxwkEQYnFmAIAB4OJHGcKAPioGRKFKdh2g6UB8iiZ5QkYQp3gKWhDlsWYmAARBcgCIAUniVpmiSA5AF3A4wG8P41nGWwDDA" +;
			"W4MAAIpSG+bRzBoGx3AeCJhh6C4ljCUJGnSRBUFKAIQA6EgIHMWBoHqYgAngHJDCALBmhCCAfHOARAScUBvAmc5zHYXxoguXQ8DEMIAH8dI8HmP4/AyQJAEAYAoHqRByEQGJiECBAzAkKIpBYNIcikAp8kcZhDn4EBChmUoMgqHIqhiWoIgaDImgyVQImaRw/F0EZGCcSw3DaM4Kn6GBBhwYYZDGZo3C+RgOAmNQnhYeYqgsTZenEVgSFYLo2CydhGg4OROF2HJjlydR7i+cJjDGFo8BgHgVl4Po+DufJRgcbQOlkCxyKuCJNAsdwIhSC4mgieYKkeHJWD0Ih8BQaYYkkMYppwTg0EsFhJC0SxEkgeodDSFpTheV5SDgLBIieRIigyVo5CeOpymoWhtEQfRACMR4zE2KxRnsV5dF2ehFCeC50G+GBkBiZgaCUGYnBySY+BsdIuEkJJJDSSRsjGeYqEWOhliYVYOHWDYbFuNhFmcS5siqbZrnGLYOh0Dp" +;
			"PhyXo7D8d4ZHGXR1CcdRAnsMh7GELwIHiSx7CiXY0HYNZ1nOcoPg0SB+CWLwwGqUpbFAQJwEeEImlCVQwk4cJxAiFRIhMS4ulGYRRlmMQVDEHZxG8YxXhIaQSniLhIiaGwnDiJZGicZYnjeZw8D6OoSkWEIthwI4emudwtGwepNhuLQ3F8Zojm4bQrhALo0D0HZwCcJwoimeI0ASWR6CAJkJQORfAiFcLIXgahaiGCgMsKIpw8DPH8H4Pj2BhjrBMGQGYfxFjuEGIsB4rxbg+DSFsPAxBtChHoAQaYmRojVG0D0e6JALjVD2K0F4qxfjjGyPIRY/QXi1AOAILwFQGgOF8KYDwOgdBsHmCYcobRtjIHoGgZAmBgi7HgPcWoHxTAmCQCcVwTgDB+FYJgfQMAOj0F2PoZgkRMjeKQLkWATwdDzEkPMF4FxzAXDGJYfAlgPAuB+FkeIWxuizC0LkUwvQbD9ByHIDouxvBCBgCMCAvh4CXCMEgSA0BJDEH+As" +;
			"fwMgfjhDeL0Ro/xkgvH4JMXA7RYjyAONgPAWhfjyCuBEcAFRSAWE4BIOwEAUgTCaIYfA4wSBUAcAsDowQOBFA4J0Hg9h2B4EmCQTYVBdB0FwIwU4rByjJGmHIRQ8gJAKB4IoZgShaDKAQOUIolQkjVBuGoSw6hugaFaJoeoWgajaDKDoO4dB5j0FcJ0Zw1Ang3CQDEdgNQnA6EmHgGw4QuCiCSAKFIXBgilEwGcLAZAtDmC0N0WgLhaApFiK0HgfxniuGKP4GIvhrhhGgHEZgaRtB5GSBUcIhg5BnHkOAeQFB5A6DiEEao2xoDHH0KIQ4bxYBfFEP8RogB5BfA8AQHwvwqAZBIBURgCgwgPAqAkKYCgfgTHCBwDIegcgjFUDQXQPQzA4DsCkDwnRABNAwE8OgTw5C6AkJEPgPRSg+DqCANoMRBjuHUKEJglQWDrHYOATg3BuDGDWEMa4CQbj3HMB0Z4Pw5jLFuCAWYsB/D2DgBEUQmB1iuDEMkfI0hUC" +;
			"yEkPIfwihKgqGsGobIGhNhfFGGoZY6gDDuGWDceANA1A2DyDUM4txaA/EwG0bo0wTDXEcH8Sg/BcD2GSHQC4pgtiuGOOkNIRg3hbG+MIGYjhzgaBeHwL4FgHAMAYFIfgJh4nJBQGkfAwRNiFAiO4KIlhoiKFiOoO4EwPiYGONUE4RATg6BOMcUwEApgZGmP4X4lxnjYGaLIZg7RNirH6FQG47xZCAC6OQLK5B1BYF8LgOQZAqh0FqGcBo/xMhpE6HsXomQwBKCwIcfA6w/DxA+IURAIxwgmBSCMKoJgOhFD0JMeIkQdhREwFAEQKRFioAYKkJIqQlhpBYFEPYUQui0GCGgFI9BlCOAUDoS4nRhA7HOOkFYdguhgEgGYUgZB2DeE6IIYIMQEgyAiPYHgYgnBlFiNsPYghKiODqISfddhPgVEOCQE4hg5iWHWPEfwfB3BgFYPkAIWQPAOC8BIb1MwrD+QsNEQ43ACAMAKGUQgsBhBoHCGUSNrxBBoEqNgG" +;
			"o8QMAJF+MMOwRxGCOFUBwHYdhODvDwMEBILgk21AKKkOI6RrgyD6LIDoJxNjkDUOQF4yAXgoC4FMXgqhKCiE4KACQow9D5CoJgLQiA9CwEMLUYwOxmhAFaEAdoSwdBBF0CEPQEWWDrGOBoEgGhTAaDyBsPoNgXA4CmHIWw+guCDCSJsNIjxsgADcNQPg2hxC2FKLACo2hNDFEMMcKw/BeCcE6LYXoGRvDJGCN8GIxgUjYAyOUbg6BpDrB0OYWw5AgjtGSOoEofAgjRG2NgY4+RRCfBeKUN4qQvi7H+HAYAchwCOCWAcQQZBBFiG4EIUYww3CFFuEQSgRAlBdDMIwCQiRrCMGCMcIwxhuiKDeE0PAlxCC8GFZQS4YhIgaEkJYS43hLAxE8EkTodQUBbBWMcHoNxy0lHqOETYyAeDeD4I0AQlRhD0G2E0O4PgKCjHeEoSgmBKCGEsBUS4vxUA8C6M0K4ox7irD+O0VouhfD7FUA33I+gmiXE0IsLY1gtip" +;
			"G0CQbQLQPjFDuDQHw2RtjFGsK0bw4x9j0CcO8N4/RtBnhSgvAcBehmAOh0ANgiAhAnhih8gwh1gbhugRhSBRhDhjh2Bvgyhfh3gPhThOBIBOA6B9gsAYAah+BdhlBWBtAuBoBThtB8gnhFheAlhcByh6BKhvAahNBnh5B1gJB1g+hCAsgAAbB1gOguAJhIAoAmhFBvqzACABh0BlgFggA6CaBvBQA7BDEHAaA0AABoAcgGBEACg5AAgYgZgLAIBKgFBBhWh9AggCAIBoBNgAANA9AJhwABBxBwAKAYAAALCJu9ADAYAFBLExBEAiBEgmBEgxBEANBENbhmgJh5gJBNgJgzgJBfgRAvAhpKhnAQg5AIpkARASA/ASKGAPBJhZBIAdBJAbARh7n4BIhshkAnAZDVgkBZAUg5AWh5AVB5AEgFAbBFA4BFACglA5hlAfAVAChVAtBVAig1AQh1ABBNB+gaAcgUA7AqAbAWgTg2gfB2gSB9AIBdA1BDh2BHAn" +;
			"BdAZg6Apgdh+h0g7lCBoAXh3BJBugahkBwBihkBkAsBYgtg/h7gNATBNgkhIgUhBg0gzI6BZgJRJglhvAvARgrAtBrALBbBFh2BxB2BZh9hFAcgOAcAdAcgCgcBzhcAVB7h9g5BlgxhohsArgDh5A8heA8BKh8hMB8gzB8APgPBmAdByAShQAVgUAWMMAaAThuATgpAWhNASgLARB3ASAwg+AsEwhiAoimBTBxhUAJhEAJhVhJBPhSBTBSBjgyhvBPlWAbgUgfhRhYBUAkAoBTAoBQgrgygfyhgTBShXBSgwhUh0hWgKhTguhQBphRAdhWAjhoBvg1gQA0g0A1AKACAehLgegzgrgmhcAmBahmB+A4AihzAhhLA6ArAFBrAfAbAyhbAPh2hYB7BzB8AOBDgwhTg+hnALAXB8hXBph3AxAPA/BPA2gLg7A8hxg+AlAXANB9ARB+A6B+h5gBgEBAg9BLhFBBAUghAWAhANhhhsgRgBARBvgjAUgiALhjBp" +;
			"Big8hjhHgSA1ASBqgvA4gkhzAmgkglhRgnB7hlh8BKA0hNgxhMBtg7guh5gjAzhPAtB/BJgBBmhhBvAdhDAighg7g2glAzBlg+AVhUAVAphVAHhqURAGhvh7g0AgAahvA2FigMg2BhhaBrg6AMAegTA6AVi5B6BlgehNgMgoA9gigMAZA/hBgMgGg+hfgbAvAegSgbApgegXhZhqBagzBYgogfgwB/Cwg7hgh/hDA/gTg5B+gNh/gXh6B8hbh8B/hEhfASg2h/BHh6BfhZBbhuAjB/g9h7BbBth0h/gbh2Ayh/hAh+h/gnh/Ajh3AwgnA/gigPBzBPBVBegigfA1h8BPhshr1HgNhvAxB/hoBdgGgBhZh3sUhMh0gmh1hLg9hIgchQB7BthugQh5hbgugth6BTgLi/ALBkocoPgCA/BQBfhmh+hXhzA/hzh+g7B1hbgch/heh4gvhEg3hsBfBOgbA2B9ArhrANhPTSKXAMg7A+Bhh4AfgZh/AVhdg/hz" +;
			"B7BTBsgfh5B+gdhZh/g7oQBogSh/BMrPhUhYBshvheBfA9AThph7ANhvhNgog/hZBNg/hdhvgIAxhjB2hHBhhOBtg1gPBCg3hZBDAmhDg0gfhNhAg8xMhgBiBvkig7BGgKBHBDBfBJhDBWhPg6BPxKAvBOBUhPB5hMhLhAh0mXBXAFhhB/A3hXBIhwB9AAgUBKg4AHA8AMgdgDhuB8hGghhcACgUAAgOA4AAA8AQABh2BQAegHA2BOB9BYhxhrBAA/hfg7hah4BCBrAxgABkAdAcK4BtgsAshdhZCSAVglgFgbASgeB3AQAPhNhIFJ2TBnhahchDBBh9gQBogABSAlhhBUgbBLANBvA+hbh+gAgWBzB5BXBWhFh/knAAACB5gkgiAggqAsAEhigrglg0ASAqgKBWgng7hSg9gdBPyphph0gQgeoOgyBNBMBIBMBnhjBsgEBJgMACAIgSBhAQAzAwg7BXA6A4BKgUBHB8Agg4BJgIgBA3ASAQAFAIhkhh" +;
			"AEA/ABRgBIhQAFgTgQhFARAEgsgkhngmAMAdhJh6A3gdBUhXBHhzhaB5hFB1HEgNgasJAOB1Bq3OB3Aeh3vth3A9gSgkh/g5hJ01A/hthbB9hQB/gCB4DPgCA9BAAeBYAGh2AAhvgBAvhkBZBOBiB5gsB2gsACBwB8AFBWBegGA6AOLkgvgiBvAABIhvh/AnAvhUhShIBmgzBRhLAyg+gDABB3gBgOhAA6AmAuBDBvA7hTA0hfAagfgfhXhrB5A4gyACAHAHgHhdh+A/B/gTh8AcAvBlhgOnhfBngyAZK2A4BMAlgqBohVAJAUAKAFALgaAmgthBA7AlhigLh/ghBAA0LxBchch8g6A7g7hbh3B+heBBBgB3B3A3ARhtBLgsBfgXBXh5A/g+B/hqBzh5heh0BagohIgBg4B/ApAatAg6BdBBBWBrhMA8AbgGAhhlByg5AvB+gzhFhihxBxghAjgeBlgEByB5h8g5gMA8BQgtBRAGh6B7gjgTZzANArAr" +;
			"grh+hquoAlhSgpB5B6B6A6BYBb57g858hcghAHhbAvhWhMhKAkBeKBguh/hRgNAjAjgjh6h0BshZg7AWALBZhD6KvyAtgtg7husuhJhJh7gYAzAihRhohJBnBtBGgNg9h3A4hogfgcAcA8ApBmBPBnhZAEAwALBngwBtp5gYAZgZhJg9h6BpBSgxA1g1hVga6XgsA2A3g3wIA9AR6pA9ARBIgYBnhjhxgTBRBIB2h3B0gYhuBxhRAHhPgnhciZh1gCAzAEgGBWBdADgPgoA/gXgIAEAuAKBbA+hRBBhRBohSgUAygAgIghgTh+hGAYBrghBQhoA2gNA7AEAQB5hxgmBSBpg0B4AJhChPg5ABAIBUBTgi4jAHBEBEgdAIhAB5hhA0gIggAhB5ACAWgahDgABFBjh3hThKABgJB5B2gzAagBBfhwB4AIh5BFAThbhohjBjBDT3BIgXgSgoBEhtgkAyAHARhkAtBoBrBrAzAqgMBcAXhgBbgkh7hghyAiBQ" +;
			"BShSgShEgphFhzh7hIgzhgB2B2A2A4A0g0hUgXAMAGAlA6hNATB8k5gAgMgdBjBWB0BuBOBfA/AegBgBAjh8hTh3BZA9hoBUgBgKBRBvAvgChhhrhuAFBvA/AZBMgqB7B7h7hKh2h2g2gPg1A9hEgkANgOAjhhAwh9gxARAwg8B6heh3gQAdPFgiA/beAZABAd8lgQgKBEgPggBBAzhhBEgbhnAPBwg/hnA2hcBWB5AQBCA8gUBehjhIAfAABMAkB6BbhuhnBsgXgRggAAhhB5j+A/qYgEhbhrkOgqBuAIhVhuhrgyBuAuBLAdolAXBBggAGAyNFAABCgnhRALBUh9gdAFB6AOguhlAYB5hHhIByB3grB9hrAlhAAHBKBChCgCgNB8BdBf9XgngqhqhDgkAAAoAw7ShThwhsBrBoB7hRgvgBByg+AjhBBUgABkgJAuAjAMhEh+gggeAPA/gJg7BOhuh1ATBxBOgIvMAthpgv9wcYg1A1AFBnhmhmguh2" +;
			"77ZQhiAGcchkgIgOhcBGhYBXgUBZbABVc5gTB1BEgAhJBUha+BB0h4+Chng4hjgyBygd7agAA1hCAQUPgRg8A7hNAQBQBwhaAFBQh0BCB4g4h1hoeRBhgp+Shnhxi8hhgygagABrAZAWBcBkgtgQA0Ahr4gkhLgvdwB/hzBtBagrgfBfA6h1hnAmguAiA8ANgLACA8AUgagOg3h0d5iBgBBCBjbIhWAGgYANAggsBthwBQAOzogx+yBHr+AGAuA0A0A2AGBPZoBnBAAwAIgnB5hcBmB3BWhWBWB+BdBcBcB8AZhsU6hxBuBgh7g7gwgVgBhuABiEh1giAmgBASAiABBWBkhAgZg0AEA1BRhQgNAwhyAgAMA0hsAxBNg7BsAbBmgQBxAUJZB1hQgMBZAVAPrchOBYgyg8gPg0hYA3gUAzAtBpB6gaB2Qvhhg/gEBoA8gshMg7AlAYgDBsBcAbACAKg6hWCthtqBAAhXgvhDgsA9hDAZAygthLADAVgSAk" +;
			"hhBsANBLAAhZgdBTArhAAQBDgTh6gEBnBNBHAVhrAPBAFkUnmLgChRECkYhG03G4rBi83imysh3uoBMaTqulIkxwIyAHSCmCcCGclnAegWGTOzSSUVurCrHwKymKmBA5EeSAivxCGV8rEopTmNwCOnA+mkIQ6sSeiEQlkKHTkp36CVC7BWPDcJ3SmgBYAASSKTiIriEYEFAQ=")
		oSchedule:SetProperty("HTMLPicture","pic2","gCJKBOI4NBQaBQAhQNJJIIhShQAEEREAIA0ROZ6PT0hQKYZpIZDKBJkIgKByN5mNJsMsKPABVqXBI4KjrD7HL6GWKPJKiCIhMiySidKxbOzZZJWMLsGL2FqyLjZMonNa2CyiZDOUqsQqUEq0ZCNISFXDIFxzZ4hUrbdrefZ/fz3ZgzZ75Tz3XjvHZnZznPieb55AKgAqmRyOOzEhR7XirWaWQQMTa+QIhDbZOZAAoYUCPDAQG7FXI4JRrNCoIRdPyyFr0AYifDUKZ+PCufK4RReALLUbtdBHSrGTCCNKqT4MbRqUxxQx+CAAEQ2VCBbxqGaLYDZNgzFbCbLDarRCrqMYMM6cWqpHKUDqhZjnVijEoLcp0FCjVg2OYhTjN/QWk4bo4iseBsAcABIDoPA5g2HgADIkQfDCNxwkEQYnFmAIAB4OJHGcKAPioGRKFKdh2g6UB8iiZ5QkYQp3gKWhDlsWYmAARBcgCIAUniVpmiSA5AF3A4wG8P41nGWwDDA" +;
			"W4MAAIpSG+bRzBoGx3AeCJhh6C4ljCUJGnSRBUFKAIQA6EgIHMWBoHqYgAngHJDCALBmhCCAfHOARAScUBvAmc5zHYXxoguXQ8DEMIAH8dI8HmP4/AyQJAEAYAoHqRByEQGJiECBAzAkKIpBYNIcikAp8kcZhDn4EBChmUoMgqHIqhiWoIgaDImgyVQImaRw/F0EZGCcSw3DaM4Kn6GBBhwYYZDGZo3C+RgOAmNQnhYeYqgsTZenEVgSFYLo2CydhGg4OROF2HJjlydR7i+cJjDGFo8BgHgVl4Po+DufJRgcbQOlkCxyKuCJNAsdwIhSC4mgieYKkeHJWD0Ih8BQaYYkkMYppwTg0EsFhJC0SxEkgeodDSFpTheV5SDgLBIieRIigyVo5CeOpymoWhtEQfRACMR4zE2KxRnsV5dF2ehFCeC50G+GBkBiZgaCUGYnBySY+BsdIuEkJJJDSSRsjGeYqEWOhliYVYOHWDYbFuNhFmcS5siqbZrnGLYOh0Dp" +;
			"PhyXo7D8d4ZHGXR1CcdRAnsMh7GELwIHiSx7CiXY0HYNZ1nOcoPg0SB+CWLwwGqUpbFAQJwEeEImlCVQwk4cJxAiFRIhMS4ulGYRRlmMQVDEHZxG8YxXhIaQSniLhIiaGwnDiJZGicZYnjeZw8D6OoSkWEIthwI4emudwtGwepNhuLQ3F8Zojm4bQrhALo0D0HZwCcJwoimeI0ASWR6CAJkJQORfAiFcLIXgahaiGCgMsKIpw8DPH8H4Pj2BhjrBMGQGYfxFjuEGIsB4rxbg+DSFsPAxBtChHoAQaYmRojVG0D0e6JALjVD2K0F4qxfjjGyPIRY/QXi1AOAILwFQGgOF8KYDwOgdBsHmCYcobRtjIHoGgZAmBgi7HgPcWoHxTAmCQCcVwTgDB+FYJgfQMAOj0F2PoZgkRMjeKQLkWATwdDzEkPMF4FxzAXDGJYfAlgPAuB+FkeIWxuizC0LkUwvQbD9ByHIDouxvBCBgCMCAvh4CXCMEgSA0BJDEH+As" +;
			"fwMgfjhDeL0Ro/xkgvH4JMXA7RYjyAONgPAWhfjyCuBEcAFRSAWE4BIOwEAUgTCaIYfA4wSBUAcAsDowQOBFA4J0Hg9h2B4EmCQTYVBdB0FwIwU4rByjJGmHIRQ8gJAKB4IoZgShaDKAQOUIolQkjVBuGoSw6hugaFaJoeoWgajaDKDoO4dB5j0FcJ0Zw1Ang3CQDEdgNQnA6EmHgGw4QuCiCSAKFIXBgilEwGcLAZAtDmC0N0WgLhaApFiK0HgfxniuGKP4GIvhrhhGgHEZgaRtB5GSBUcIhg5BnHkOAeQFB5A6DiEEao2xoDHH0KIQ4bxYBfFEP8RogB5BfA8AQHwvwqAZBIBURgCgwgPAqAkKYCgfgTHCBwDIegcgjFUDQXQPQzA4DsCkDwnRABNAwE8OgTw5C6AkJEPgPRSg+DqCANoMRBjuHUKEJglQWDrHYOATg3BuDGDWEMa4CQbj3HMB0Z4Pw5jLFuCAWYsB/D2DgBEUQmB1iuDEMkfI0hUC" +;
			"yEkPIfwihKgqGsGobIGhNhfFGGoZY6gDDuGWDceANA1A2DyDUM4txaA/EwG0bo0wTDXEcH8Sg/BcD2GSHQC4pgtiuGOOkNIRg3hbG+MIGYjhzgaBeHwL4FgHAMAYFIfgJh4nJBQGkfAwRNiFAiO4KIlhoiKFiOoO4EwPiYGONUE4RATg6BOMcUwEApgZGmP4X4lxnjYGaLIZg7RNirH6FQG47xZCAC6OQLK5B1BYF8LgOQZAqh0FqGcBo/xMhpE6HsXomQwBKCwIcfA6w/DxA+IURAIxwgmBSCMKoJgOhFD0JMeIkQdhREwFAEQKRFioAYKkJIqQlhpBYFEPYUQui0GCGgFI9BlCOAUDoS4nRhA7HOOkFYdguhgEgGYUgZB2DeE6IIYIMQEgyAiPYHgYgnBlFiNsPYghKiODqISfddhPgVEOCQE4hg5iWHWPEfwfB3BgFYPkAIWQPAOC8BIb1MwrD+QsNEQ43ACAMAKGUQgsBhBoHCGUSNrxBBoEqNgG" +;
			"o8QMAJF+MMOwRxGCOFUBwHYdhODvDwMEBILgk21AKKkOI6RrgyD6LIDoJxNjkDUOQF4yAXgoC4FMXgqhKCiE4KACQow9D5CoJgLQiA9CwEMLUYwOxmhAFaEAdoSwdBBF0CEPQEWWDrGOBoEgGhTAaDyBsPoNgXA4CmHIWw+guCDCSJsNIjxsgADcNQPg2hxC2FKLACo2hNDFEMMcKw/BeCcE6LYXoGRvDJGCN8GIxgUjYAyOUbg6BpDrB0OYWw5AgjtGSOoEofAgjRG2NgY4+RRCfBeKUN4qQvi7H+HAYAchwCOCWAcQQZBBFiG4EIUYww3CFFuEQSgRAlBdDMIwCQiRrCMGCMcIwxhuiKDeE0PAlxCC8GFZQS4YhIgaEkJYS43hLAxE8EkTodQUBbBWMcHoNxy0lHqOETYyAeDeD4I0AQlRhD0G2E0O4PgKCjHeEoSgmBKCGEsBUS4vxUA8C6M0K4ox7irD+O0VouhfD7FUA33I+gmiXE0IsLY1gtip" +;
			"G0CQbQLQPjFDuDQHw2RtjFGsK0bw4x9j0CcO8N4/RtBnhSgvAcBehmAOh0ANgiAhAnhih8gwh1gbhugRhSBRhDhjh2Bvgyhfh3gPhThOBIBOA6B9gsAYAah+BdhlBWBtAuBoBThtB8gnhFheAlhcByh6BKhvAahNBnh5B1gJB1g+hCAsgAAbB1gOguAJhIAoAmhFBvqzACABh0BlgFggA6CaBvBQA7BDEHAaA0AABoAcgGBEACg5AAgYgZgLAIBKgFBBhWh9AggCAIBoBNgAANA9AJhwABBxBwAKAYAAALCJu9ADAYAFBLExBEAiBEgmBEgxBEANBENbhmgJh5gJBNgJgzgJBfgRAvAhpKhnAQg5AIpkARASA/ASKGAPBJhZBIAdBJAbARh7n4BIhshkAnAZDVgkBZAUg5AWh5AVB5AEgFAbBFA4BFACglA5hlAfAVAChVAtBVAig1AQh1ABBNB+gaAcgUA7AqAbAWgTg2gfB2gSB9AIBdA1BDh2BHAn" +;
			"BdAZg6Apgdh+h0g7lCBoAXh3BJBugahkBwBihkBkAsBYgtg/h7gNATBNgkhIgUhBg0gzI6BZgJRJglhvAvARgrAtBrALBbBFh2BxB2BZh9hFAcgOAcAdAcgCgcBzhcAVB7h9g5BlgxhohsArgDh5A8heA8BKh8hMB8gzB8APgPBmAdByAShQAVgUAWMMAaAThuATgpAWhNASgLARB3ASAwg+AsEwhiAoimBTBxhUAJhEAJhVhJBPhSBTBSBjgyhvBPlWAbgUgfhRhYBUAkAoBTAoBQgrgygfyhgTBShXBSgwhUh0hWgKhTguhQBphRAdhWAjhoBvg1gQA0g0A1AKACAehLgegzgrgmhcAmBahmB+A4AihzAhhLA6ArAFBrAfAbAyhbAPh2hYB7BzB8AOBDgwhTg+hnALAXB8hXBph3AxAPA/BPA2gLg7A8hxg+AlAXANB9ARB+A6B+h5gBgEBAg9BLhFBBAUghAWAhANhhhsgRgBARBvgjAUgiALhjBp" +;
			"Big8hjhHgSA1ASBqgvA4gkhzAmgkglhRgnB7hlh8BKA0hNgxhMBtg7guh5gjAzhPAtB/BJgBBmhhBvAdhDAighg7g2glAzBlg+AVhUAVAphVAHhqURAGhvh7g0AgAahvA2FigMg2BhhaBrg6AMAegTA6AVi5B6BlgehNgMgoA9gigMAZA/hBgMgGg+hfgbAvAegSgbApgegXhZhqBagzBYgogfgwB/Cwg7hgh/hDA/gTg5B+gNh/gXh6B8hbh8B/hEhfASg2h/BHh6BfhZBbhuAjB/g9h7BbBth0h/gbh2Ayh/hAh+h/gnh/Ajh3AwgnA/gigPBzBPBVBegigfA1h8BPhshr1HgNhvAxB/hoBdgGgBhZh3sUhMh0gmh1hLg9hIgchQB7BthugQh5hbgugth6BTgLi/ALBkocoPgCA/BQBfhmh+hXhzA/hzh+g7B1hbgch/heh4gvhEg3hsBfBOgbA2B9ArhrANhPTSKXAMg7A+Bhh4AfgZh/AVhdg/hz" +;
			"B7BTBsgfh5B+gdhZh/g7oQBogSh/BMrPhUhYBshvheBfA9AThph7ANhvhNgog/hZBNg/hdhvgIAxhjB2hHBhhOBtg1gPBCg3hZBDAmhDg0gfhNhAg8xMhgBiBvkig7BGgKBHBDBfBJhDBWhPg6BPxKAvBOBUhPB5hMhLhAh0mXBXAFhhB/A3hXBIhwB9AAgUBKg4AHA8AMgdgDhuB8hGghhcACgUAAgOA4AAA8AQABh2BQAegHA2BOB9BYhxhrBAA/hfg7hah4BCBrAxgABkAdAcK4BtgsAshdhZCSAVglgFgbASgeB3AQAPhNhIFJ2TBnhahchDBBh9gQBogABSAlhhBUgbBLANBvA+hbh+gAgWBzB5BXBWhFh/knAAADBngkgiAggqAsAEhiiig2AqUgBPA5hnB3Bshug3A9g7BbhthqALPBglN0gCgUoQh4AQAIgAgVgTAhBEAIBYACBIhEB4hggoASBiBKBsBJARRDhwBkgMABBrAQADA+AUAlAm" +;
			"hGBJBaAVALghgSgaA2gpApgpgEgigEBehTBAhLB2g7Bdhdgzhnhih3gvg9AbA9gWhUAHgnB5BPhMgZh5hnh/g/h5hvgzAMB9hPgNh7gnh6h1vtAIA9hVAggVggAbAoWrgAB1ABhGhBg/AAg+hng4huAAB9BjhbATiLhihNgQB2gegoBkgxrEgxAQAQBGgABpAdgJgfgfhpgRBWh8h+tWgmhpgXAABgAzuAYRAhAtAEhfBVhVBVA/BsLNAWAyBpAZhRgChhBwg4BUjtB/LiAehMgCAeBwg+B9hiY9g7BThpgkgXAlA0AMgAgCBBhghshRAUBbBBBthOhYBxgvh/BgANAOgbg3hvAuAvgvAvAXBjhFgkB1hBADgHgPAkATBJh0gWAbBcgzgZA75YBbhUhWBaBqBegxhjgHAEg9hcBMg8BQg6V8h1gegPBXhOBjA0gAgkX2AFhggphNBmBOB+ZSgDBxBdAdAdhihWgagahXBdg7h3gzB6B6h6BvBmhIgkAy" +;
			"A6uihKAGhAggBQAoAIBCBJgwAZBigZhTANhz5+A1hs5/g9A3g3hXhEAgBygXAuhdAyAshaA0AohiX/A1h0h8BThzheAFgLAWAcA9h/B+A8hOh/ApgxAABAh7gIgHB6g7BeBABghggghfBWhWgmgCAYADBrgYAJg9AAhehgB5hGBj6KBbAbA1g/21gEgQBMBs40AHgOAeB0AV6oAphxAyhiBHhghbhuoEB/AgA5gUgAAhBQhoBPhMBHgCgPBpBEAqgqAqBcBIg9guArArALAZgEABBMBqlEAzAohGQ8gAgjACgASQq7hNAvBvhoBwBhhfAmAQBfKYg7gEAgBBAFhQBuBFhcg7g0s6gSMxhhAageBgB4BEAHgjBKBJhOhmh2A7V4jtBGAuAogcA1hLAlAQKehwBFhdBxgshXgrgUgUAUAkBzhHBhAhhDgHA+glAdAJAWAAASh1hQh4A5ghg8g5Bvg7h1hLB0h0BohRhJBVAUAeAshgApgqBSBeBbA4gxhQ" +;
			"BSBSASAxB4A7A6A6AsBnBOAfBOgegbAbOoYxAb5uBGgkgHAjhqBvgDAHh64bAOAHAYQPACh4BegTgpgVA68JhMh7h3hvh3hABKg8BqADvRBLhThqh3BvB2hBgICDA5hHAPgdhzA2Bcg4BggHBZhlhdh7h2B4whAoBDgagIA2BbAGAZB5gEgkABAAB+AFh0hMAXgvhfZVhqBrglglASBhAQhkAMBVARg9hUhdA9AVARBlhuBkgJgTgOAe8zBLBwhQgQhp7dhXhtBfTJBJBFBFhFhKhyhlhLhDgUAfBkARB0gyBhBpBrAKAAAwAGATAZhb9FBNhQgeFVgNBGhDgjhchnhzBmBMgJh0h1h1gZgngmgmhigHAAgFhZBthMAhhshygEgCAygFnlB7AoBIAjgbg0BRACgKAihchLgGAwAvguguhHBGBJgzDtB9BzAWgtgBBwAwgiBJhAgAAyhChTAQglg0AHgfASAXhNBTAkArtGhLAAApgtATBlhSA/gAAMAS" +;
			"B/AMA9B9HUhPAyBzBzgrhWBIYwhVByBhgjhHB8ArBXgsgJgRAqhEABhrA4hxhDAygXBBBXheBRARAGAwgmBBgoBZBgBVh1hrAmgtAWALBO8sBkh5BnBPgPgkhLAEgqgBhjBihKAoB2goBgklgfBdBfgxgyhcBYhYg4hJBgAMg2hkhJAShwg1hrhXAsgog+A2VGBHhZA6htgbB/hOgdg7hBARhhhhgTBqB9BEAVgbgrh+hTBchsg/AHhCgUgBAlhehcA1AqhkBsA1iOBqPEgJhpBIATA+gfAvgWgnApA3gYASB725he22BXgJh3gCAggiAQhVBWBWBKAog/ByhBBhAhA61gAvggBmAiBVgRLNgYAPhvAqgth1gnhLAAhFmbhcguBugaBPgBAwAyAyBiBHAOB/gGgQAFBJgbgNB/hR/fB+BjhDgHglghhETkgkgIgsgggyhNAuAgBXAgBbBYAygqgqhQhbg7B3BOBSB6h8AjBThDh8gvgbhzCIBoBhB8f0" +;
			"hNgIB7BEhghKBXBThdEpDkheg/B+hdB8Brh2htgzBVBAEADiS0kU52cjV4vDsbRgwy6gA0pl5EQke1MpQKMAa4iWgDwJU68n+MHuAScfxUfj+wi6EFuwHC5Wkhgkuwkc40G2qeE8elEOF8lHCNAeTwsMTwqWOyWeIGQjxIbyQB0AFHgLayJHARwI0iE+HuGQEAAlT0IR0KiDWW2I2EYcUoaE8/giYAEiGAEiijXAEGwpx4HmeAWQNXcBFGTwaQikDlE9Bo41iYTuOA4zjnB2qzk2NzeEy4YkGwlQIikAE8hGM805rEEAmAKmUtQEkHuO9yj2u1GofEONxMVR8SiSulw6EMjEESDOTgGgEQi2MjjU5mI5l4pSWl0s1e+vUCXC+iGQtjEIwOCXi+xqAGowVeoQU+jgeX63GgsHeq1CoTREEpAkL0hgNAA9AoFUQTRBYLzAJgIwAEQIhZAAZjNIEUAXMw+gUBQPCNHE0YFBsKgXC8Xg8DsRySGwhQFAWFQY" +;
			"IE0gAB4pjjFcrhcPk4ziMUiy/AMzQwAIZwUPsxwgGsAg0AUCiCOgkQyhEAhFAAzAgCs6h9BYjAqCkgjiEQDA4BEhhuF01SdLoqjaGARwjIY4APF44QEC4JBwNwhDOHEDwRAYDwVF49QxFk9hBA4KQnPMh4BDw9hIEkKDFFgoBGL4IQiEYGS+OQZBdKYLDAIsSwLMM9xkMo+y4OsRRICEkAEBgqShCkEArOMeBBEwTCiCcPgiDoNQpE48A9P4owtJ0CxoMEsACFkQjIM0zQVCk8hRH4LT4LcoT2FkZAmBMeCyAA8QYIASQJBEnSWIg/BtMw0SpOkUDEBsayZAAEADK0GTrAYICzIsuTMLgkBNH45gnOU8QAEgAT5JcFCSCIGgTBkFiNJkHRzLE9g3CA5QJAk0CGBF7gAywSRFE4RCuEIYCCQE=")
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:ShowGroupingEvents := .T.
		oGroups := oSchedule:Groups()
			oGroup := oGroups:Add(1,"<c><b>Group</b><br><c><img>pic1</img>")
				oGroup:Visible := .T.
				oGroup:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
			oGroup1 := oGroups:Add(2,"<c><b>Group</b><br><c><img>pic2</img>")
				oGroup1:Visible := .T.
				oGroup1:SetProperty("EventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00"):GroupID := 1
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):GroupID := 2
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00"):GroupID := 1
		oSchedule:HeaderGroupHeight := -1
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
282
When using the CopyTo method to print a range of dates the printed page is not showing the timescale, is there a way to make it appear (as is, without calendar, multiple-selection)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL s,var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "#1/1/2016#"
			oCalendar:Selection := "(int((yearday(value) -1- ((7-weekday(value - yearday(value) + 1)) mod 7) )/7) = int((yearday(#1/7/2016#))/7))"
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2016 08:30:00","01/10/2016 14:30:00")
			oEvents:Add("01/11/2016 09:30:00","01/11/2016 11:30:00")
			oEvents:Add("01/15/2016 10:30:00","01/15/2016 11:30:00")
		s := oSchedule:Calendar:Selection()
		oSchedule:Calendar():Selection := "0"
		var_CopyTo := oSchedule:CopyTo("c:/temp/test.png")
		DevOut( "Look for c:/temp/test.png file" )
		oSchedule:Calendar():Selection := s

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
281
When using the CopyTo method to print a range of dates the printed page is not showing the timescale, is there a way to make it appear (as is, without calendar)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/01/2012"
			oCalendar:SetProperty("SelectDate","01/01/2012",.F.)
		oEvents := oSchedule:Events()
			oEvents:Add("01/01/2012 08:30:00","01/01/2012 09:30:00")
			oEvents:Add("01/01/2012 08:35:00","01/01/2012 09:35:00")
			oEvents:Add("01/01/2012 10:30:00","01/01/2012 12:30:00")
		var_CopyTo := oSchedule:CopyTo("c:/temp/test.png")
		DevOut( "Look for c:/temp/test.png file" )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
280
When using the CopyTo method to print a range of dates the printed page is not showing the timescale, is there a way to make it appear (as is, with calendar)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/01/2012"
			oCalendar:SetProperty("SelectDate","01/01/2012",.F.)
		oEvents := oSchedule:Events()
			oEvents:Add("01/01/2012 08:30:00","01/01/2012 09:30:00")
			oEvents:Add("01/01/2012 08:35:00","01/01/2012 09:35:00")
			oEvents:Add("01/01/2012 10:30:00","01/01/2012 12:30:00")
		var_CopyTo := oSchedule:CopyTo("c:/temp/test.png")
		DevOut( "Look for c:/temp/test.png file" )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
279
I've seen that all-day header can be limited up to 4, 8 or 12 events. Can I change that limit, for instance, 3 events only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value >= #5/20/2012# and value <= #5/26/2012#"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 4403/*0x23+exAllDayEventWheelScroll+exAllDayEventNoMax*/
		oSchedule:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 128,128,128 } )  , .F. ))
		oSchedule:SetProperty("Background",165/*exScheduleAllDayEventScrollBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 220,220,220 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/25/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
278
Is it possible to highlight the newly created event ( runtime creation )
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
277
Is it possible to select the newly created event ( runtime creation )
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AllowSelectCreateEvent := 1/*exSelectCreateEvent*/

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
276
I have noticed that the all-day header change its background, if has scrolling events. Is it possible to change that (ebn)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:VisualAppearance():Add(1,"gBFLBCJwBAEHhEJAAChABRUIQAAYAQGKIaBoAKBQAGaAoDDQMQ3QwAAwjSLEEwsACEIrjKCRShyCYZRrGQBQTCIZBqEqSZLiEZRQCWIAxATGchwHIEQgND6cIDmMAHfj2PI+RZKMoRZJUExZFyERhASQZZoyN40UzOc6vfL9KRDEAEIRKAyTDLQdRyGSMMgEVBJBCbMiNBqhESIJo+GI4BhFYSUZalGSnO6gIBAgIA==")
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 4416/*exAllDayEventWheelScroll+exAllDayEventMax4*/
		oSchedule:SetProperty("Background",165/*exScheduleAllDayEventScrollBackColor*/,0x1000000)
		oEvents := oSchedule:Events()
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/26/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
275
I have noticed that the all-day header change its background, if has scrolling events. Is it possible to change that (solid)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 4416/*exAllDayEventWheelScroll+exAllDayEventMax4*/
		oSchedule:SetProperty("Background",165/*exScheduleAllDayEventScrollBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 220,220,220 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/26/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
274
I have noticed that the all-day header change its background, if has scrolling events. Is it possible to remove that

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 4416/*exAllDayEventWheelScroll+exAllDayEventMax4*/
		oSchedule:SetProperty("Background",165/*exScheduleAllDayEventScrollBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 0,0,0 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/26/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
273
The user scrolls through the all-day events, when mouse wheel is rotated. Can I disable that
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 320/*exAllDayEventScroll+exAllDayEventMax4*/
		oEvents := oSchedule:Events()
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/26/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
272
Is it possible to specify the number of all-day events to be visible

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 4416/*exAllDayEventWheelScroll+exAllDayEventMax4*/
		oEvents := oSchedule:Events()
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/26/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
271
How do I disable scrolling the all-day header
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:AllowSelectCreateEvent := 2/*exHighlightCreateEvent*/
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oSchedule:Calendar():Selection := "05/21/2012"
		oSchedule:Calendar():Selection := "value in (#5/21/2012#,#5/22/2012#,#5/23/2012#,#5/24/2012#,#5/25/2012#)"
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowAllDayEventScroll := 0/*exAllDayEventNoMin*/
		oEvents := oSchedule:Events()
			oEvents:Add("05/22/2012","05/23/2012"):AllDayEvent := .T.
			oEvents:Add("05/21/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/24/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/22/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/23/2012","05/25/2012"):AllDayEvent := .T.
			oEvents:Add("05/24/2012","05/26/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
270
How can I display the current week only, when the user selects the date in the calendar panel

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 129/*exDisableSplitter+exResizePanelRight*/
		oCalendar := oSchedule:Calendar()
			oCalendar:OnSelectDate := 1/*exEnsureVisibleDate*/
			oCalendar:Selection := "01/10/2001"
			oCalendar:SingleSel := .T.
		oSchedule:Calendar():FirstWeekDay := 1/*exMonday*/
		oSchedule:ScrollBars := 0/*exNoScroll*/
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oSchedule:SetProperty("Background",35/*exScheduleBorderMonthColor*/,oSchedule:Background(34/*exScheduleBorderDateColor*/))
		oSchedule:TimeScales:Item(0):AllowResize := .F.
		oSchedule:DayViewWidth := 0
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
269
How do I capture the control and save it as PDF (Method 2)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 512
		oSchedule:DayViewHeight := 512
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		var_CopyTo := oSchedule:CopyTo("C:/Temp/test.pdf")
		DevOut( "Look For: C:/Temp/test.pdf file" )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
268
How do I capture the control and save it as PDF (Method 1)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oPrint
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 512
		oSchedule:DayViewHeight := 512
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:Options := "FitToPage=On"
			oPrint:PrintExt := oSchedule
			oPrint:CopyTo("C:/Temp/test.pdf")
			DevOut( "Look For: C:/Temp/test.pdf file" )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
267
How do I capture the control and save it as an image (JPG or BMP) (Method 2)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule
	LOCAL var_CopyTo,var_CopyTo1

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 512
		oSchedule:DayViewHeight := 512
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		var_CopyTo := oSchedule:CopyTo("C:/Temp/test.bmp")
		var_CopyTo1 := oSchedule:CopyTo("C:/Temp/test.jpg")
		DevOut( "Look For: C:/Temp/test.* file" )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
266
How do I capture the control and save it as an image (JPG or BMP) (Method 1)
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oPrint
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/01/2001"
			oCalendar:Selection := "value in (#6/11/2001#,#6/12/2001#)"
		oSchedule:DayViewWidth := 512
		oSchedule:DayViewHeight := 512
		oEvents := oSchedule:Events()
			oEvents:Add("06/11/2001 10:00:00","06/11/2001 13:00:00")
			oEvents:Add("06/12/2001 10:00:00","06/12/2001 13:00:00")
		oPrint := CreateObject("Exontrol.Print")
			oPrint:Options := "FitToPage=On"
			oPrint:PrintExt := oSchedule
			oPrint:CopyTo("C:/Temp/test.bmp")
			oPrint:CopyTo("C:/Temp/test.jpg")
			DevOut( "Look For: C:/Temp/test.* file" )

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
265
Recurrence: The 2nd to last weekday of the month

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/29/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/29/1997 09:00:00","09/29/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-2"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
264
Recurrence: The 3rd instance into the month of one of Tuesday, Wednesday or Thursday, for the next 3 months

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/04/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/04/1997 09:00:00","09/04/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;COUNT=3;BYDAY=TU,WE,TH;BYSETPOS=3"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
263
Recurrence: The last work day of the month

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/30/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("08/05/1997 09:00:00","08/05/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;BYDAY=MO,TU,WE,TH,FR;BYSETPOS=-1"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
262
Recurrence: An example where the days generated makes a difference because of WKST (Sample 2)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "08/05/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("08/05/1997 09:00:00","08/05/1997 14:00:00"):Repetitive := "FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
261
Recurrence: An example where the days generated makes a difference because of WKST (Sample 1)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "08/05/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("08/05/1997 09:00:00","08/05/1997 14:00:00"):Repetitive := "FREQ=WEEKLY;INTERVAL=2;COUNT=4;BYDAY=TU,SU"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
260
Recurrence: Every four years, the first Tuesday after a Monday in November, forever (U.S. Presidential Election day)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "11/05/1996"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("11/05/1996 09:00:00","11/05/1996 14:00:00"):Repetitive := "FREQ=YEARLY;INTERVAL=4;BYMONTH=11;BYDAY=TU;BYMONTHDAY=2,3,4,5,6,7,8"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
259
Recurrence: The first Saturday that follows the first Sunday of the month, forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/13/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/13/1997 09:00:00","09/13/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;BYDAY=SA;BYMONTHDAY=7,8,9,10,11,12,13"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
258
Recurrence: Every Friday the 13th, forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "02/13/1998"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;BYDAY=FR;BYMONTHDAY=13"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
257
Recurrence: Every Thursday, but only during June, July, and August, forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/05/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("06/05/1997 09:00:00","06/05/1997 14:00:00"):Repetitive := "FREQ=YEARLY;BYDAY=TH;BYMONTH=6,7,8"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
256
Recurrence: Every Thursday in March, forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "03/13/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("03/13/1997 09:00:00","03/13/1997 14:00:00"):Repetitive := "FREQ=YEARLY;BYMONTH=3;BYDAY=TH"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
255
Recurrence: Monday of week number 20 (where the default start of the week is Monday), forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/12/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("05/12/1997 09:00:00","05/12/1997 14:00:00"):Repetitive := "FREQ=YEARLY;BYWEEKNO=20;BYDAY=MO"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
254
Recurrence: Every 20th Monday of the year, forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/19/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("01/01/1997 09:00:00","01/01/1997 14:00:00"):Repetitive := "FREQ=YEARLY;BYDAY=20MO"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
253
Recurrence: Every 3rd year on the 1st, 100th and 200th day for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/01/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("01/01/1997 09:00:00","01/01/1997 14:00:00"):Repetitive := "FREQ=YEARLY;INTERVAL=3;COUNT=10;BYYEARDAY=1,100,200"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
252
Recurrence: Every other year on January, February, and March for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "03/10/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("03/10/1997 09:00:00","03/10/1997 14:00:00"):Repetitive := "FREQ=YEARLY;INTERVAL=2;COUNT=10;BYMONTH=1,2,3"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
251
Recurrence: Yearly in June and July for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "06/10/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthX := 2
			oCalendar:MaxMonthY := 2
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("06/10/1997 09:00:00","06/10/1997 14:00:00"):Repetitive := "FREQ=YEARLY;COUNT=10;BYMONTH=6,7"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
250
Recurrence: Every Tuesday, every other month

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/02/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;INTERVAL=2;BYDAY=TU"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
249
Recurrence: Every 18 months on the 10th thru 15th of the month for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/10/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/10/1997 09:00:00","09/10/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;INTERVAL=18;COUNT=10;BYMONTHDAY=10,11,12,13,14,15"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
248
Recurrence: Monthly on the first and last day of the month for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/30/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/03/1997 09:00:00","09/03/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;COUNT=10;BYMONTHDAY=1,-1"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
247
Recurrence: Monthly on the 2nd and 15th of the month for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/02/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;COUNT=10;BYMONTHDAY=2,15"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
246
Recurrence: Monthly on the third to the last day of the month, forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/28/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/28/1997 09:00:00","09/28/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;BYMONTHDAY=-3"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
245
Recurrence: Monthly on the second to last Monday of the month for 6 months

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/22/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/22/1997 09:00:00","09/22/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;COUNT=6;BYDAY=-2MO"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
244
Recurrence: Every other month on the 1st and last Sunday of the month for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/07/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/07/1997 09:00:00","09/07/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;INTERVAL=2;COUNT=10;BYDAY=1SU,-1SU"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
243
Recurrence: Monthly on the 1st Friday until December 24, 1997

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/05/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/05/1997 09:00:00","09/05/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;UNTIL=19971224T000000Z;BYDAY=1FR"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
242
Recurrence: Monthly on the 1st Friday for ten occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/05/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/05/1997 09:00:00","09/05/1997 14:00:00"):Repetitive := "FREQ=MONTHLY;COUNT=10;BYDAY=1FR"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
241
Recurrence: Every other week on Tuesday and Thursday, for 8 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/16/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=WEEKLY;INTERVAL=2;COUNT=8;WKST=SU;BYDAY=TU,TH"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
240
Recurrence: Every other week on Monday, Wednesday and Friday until December 24, 1997, but starting on Tuesday, September 2, 1997

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/17/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=WEEKLY;INTERVAL=2;UNTIL=19971224T000000Z;WKST=SU;BYDAY=MO,WE,FR"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
239
Recurrence: Weekly on Tuesday and Thursday for 5 weeks

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/16/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=WEEKLY;UNTIL=19971007T000000Z;WKST=SU;BYDAY=TU,TH"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
238
Recurrence: Weekly on Tuesday and Thursday for 5 weeks

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/16/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=WEEKLY;COUNT=10;WKST=SU;BYDAY=TU,TH"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
237
Recurrence: Every other day - forever

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/04/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=DAILY;INTERVAL=2"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
236
Recurrence: Daily until December 24, 1997

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/17/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=DAILY;UNTIL=19971224T000000Z"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
235
Recurrence: Daily for 10 occurrences

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oHighlight
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "09/09/1997"
			oCalendar:ShowNonMonthDays := .F.
			oCalendar:MaxMonthY := 4
			oHighlight := oCalendar:HighlightEvent()
				oHighlight:Pattern():Type := 256/*exPatternFrame*/
				oHighlight:Bold := .F.
			oCalendar:FirstWeekDay := 1/*exMonday*/
		oSchedule:ShowViewCompact := -1/*exViewCalendarCompact*/
		oSchedule:BorderSelStyle := -1/*exNoLines*/
		oSchedule:SetProperty("Background",81/*exScheduleMarkTodayBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oEvents := oSchedule:Events()
			oEvents:Add("09/02/1997 09:00:00","09/02/1997 14:00:00"):Repetitive := "FREQ=DAILY;COUNT=10"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
234
How do I display the week number according, so the January 1st is in the first week

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/01/2016"
			oCalendar:FirstWeekDay := 0/*exSunday*/
			oCalendar:DisplayWeekNumberAs := 1/*exSimpleWeekNumber*/
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
233
How do I display the week number according to ISO8601 standard

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "01/04/2016"
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oCalendar:DisplayWeekNumberAs := 0/*exISO8601WeekNumber*/
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
232
How do I hide the week number

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oCalendar:ShowWeeks := .F.
			oCalendar:ShowNonMonthDays := .F.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
231
How can I change the background color of the all day header

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:OnResizeControl := 2048/*exCalendarAutoHide*/
		oSchedule:ShowAllDayHeader := .T.
		oCalendar := oSchedule:Calendar()
			oCalendar:FirstWeekDay := 1/*exMonday*/
			oCalendar:SetProperty("SelectDate","05/08/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
			oCalendar:SetProperty("SelectDate","05/15/2012",.F.)
			oCalendar:Select(19/*exSelectToggle+exSelectWeek*/)
		oSchedule:SetProperty("Background",87/*exScheduleAllDayHeaderBackColor*/,AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:HeaderAllDayEventHeight := -20
		oSchedule:Events():Add("05/08/2012","05/17/2012"):AllDayEvent := .T.
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
230
How can I display a single text on a specified date

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/26/2012"
		oSchedule:Calendar():Selection := "value in (#05/23/2012#,#05/24/2012#,#05/25/2012#)"
		oSchedule:NonworkingPatterns():Add(1234,0/*exPatternEmpty*/):BackgroundExt := "[text=`<font ;6><fgcolor 808080>just a notice`,align=0x11]"
		oSchedule:NonworkingTimes():Add("value = #05/25/2012#","09:00","10:00",1234)
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
229
I am using the control's DataSource property, the question is how can I get the event's identifier Datafield(exEventID)

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule
	LOCAL rs

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		rs := CreateObject("ADOR.Recordset")
			rs:Open("Events","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExSchedule\Sample\Access\datasource.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "11/11/2013"
		oSchedule:SetProperty("DataField",1/*exEventStartDateTime*/,"Start")
		oSchedule:SetProperty("DataField",2/*exEventEndDateTime*/,"End")
		oSchedule:SetProperty("DataField",11/*exEventExtraLabel*/,"Extra")
		oSchedule:DataSource := rs
		DevOut( Transform(oSchedule:Events:Item(1):KnownProperty(12/*exEventID*/),"") )
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
228
Is it possible to display some text/image on the schedule's view background

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/25/2012"
		oSchedule:NonworkingPatterns():Add(1234,6/*exPatternBDiagonal*/):BackgroundExt := "[text=`<fgcolor 808080>just a caption`,align=0x11]"
		oSchedule:NonworkingPatterns():Add(1235,0/*exPatternEmpty*/):BackgroundExt := "[text=`<fgcolor 808080>just another caption`,align=0x11]"
		oSchedule:NonworkingTimes():Add("weekday(value) = 5","08:00","08:59:59",1234)
		oSchedule:NonworkingTimes():Add("weekday(value) = 5","09:00","09:59:59",1235)
		oSchedule:NonworkingTimes():Add("weekday(value) = 5","10:00","10:59:59",1234)
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
227
How can I display a text on the schedule's view background

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/25/2012"
		oSchedule:NonworkingPatterns():Add(1234,0/*exPatternEmpty*/):BackgroundExt := "[text=`<fgcolor 808080>just a caption`,align=0x11]"
		oSchedule:NonworkingTimes():Add("weekday(value) = 5","12:00","13:00",1234)
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
226
Is it possible to change the visual appearance of the edit's context menu

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:VisualAppearance():Add(1,"c:\exontrol\images\normal.ebn")
		oSchedule:SetProperty("Background",99/*exContextMenuAppearance*/,0x1000000)

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
225
How do I customize the edit's context menu

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
		oSchedule:EditContextMenuItems := "Insert[group=3](<img>1</img>[id=57763],<img>2</img>[id=57763])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
224
How can I lock/fix the date header, so it stays on the top while the user scrolls the chart

PROCEDURE OnLayoutEndChanging(oSchedule, Operation)
	DevOut( Transform(Operation,"") )
	oSchedule:DayViewHeight := 2016
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:LayoutEndChanging := {|Operation| OnLayoutEndChanging(oSchedule, Operation)} /*Notifies your application once the control's layout has been changed.*/

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/20/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
		oSchedule:ScrollBars := 2/*exVertical*/
		oSchedule:ShowViewCompact := 3/*exViewSingleRowLockHeader*/
		oSchedule:DayViewHeight := 2016
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oSchedule:AllowExchangePanels := 0/*exDisallow*/
		oSchedule:AllowMoveTimeScale := 0/*exDisallow*/
		oSchedule:AllowResizeTimeScale := 0/*exDisallow*/
		oSchedule:AllowMultiDaysEvent := .F.
		oSchedule:TimeScales:Item(0):MinorTimeRuler := "00:10"
		oSchedule:DayStartTime := "00:00"
		oSchedule:DayEndTime := "24:00"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
223
Is there any way to control the vertical size of each hour other than by the font and/or the minor time scale being changed

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/20/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:ScrollBars := 2/*exVertical*/
		oSchedule:ShowViewCompact := 1/*exViewSingleRow*/
		oSchedule:DayViewHeight := 2016
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oSchedule:AllowExchangePanels := 0/*exDisallow*/
		oSchedule:AllowMoveTimeScale := 0/*exDisallow*/
		oSchedule:AllowResizeTimeScale := 0/*exDisallow*/
		oSchedule:AllowMultiDaysEvent := .F.
		oSchedule:SetProperty("Background",36/*exScheduleBorderSelColor*/,oSchedule:Background(37/*exScheduleBorderSelColorUnFocus*/))
		oSchedule:TimeScales:Item(0):MinorTimeRuler := "00:10"
		oSchedule:DayStartTime := "00:00"
		oSchedule:DayEndTime := "24:00"
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
222
How can I show a single week, no calendar

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:SetProperty("SelectDate","05/20/2012",.T.)
			oCalendar:Select(3/*exSelectWeek*/)
		oSchedule:OnResizeControl := 768/*exChangePanels+exHideSplitter*/
		oSchedule:ScrollBars := 0/*exNoScroll*/
		oSchedule:ShowViewCompact := 1/*exViewSingleRow*/
		oSchedule:AllowMoveSchedule := 0/*exDisallow*/
		oSchedule:AllowResizeSchedule := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oSchedule:AllowExchangePanels := 0/*exDisallow*/
		oSchedule:AllowMoveTimeScale := 0/*exDisallow*/
		oSchedule:AllowResizeTimeScale := 0/*exDisallow*/
		oSchedule:AllowMultiDaysEvent := .F.
		oSchedule:SetProperty("Background",36/*exScheduleBorderSelColor*/,oSchedule:Background(37/*exScheduleBorderSelColorUnFocus*/))
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
221
How do I select the dates within a giving interval only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/01/2012"
			oCalendar:Selection := "(value >= #5/13/2012#) and (value <= #5/26/2012#)"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
220
How do I display the dates within a giving interval only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oCalendar := oSchedule:Calendar()
			oCalendar:Selection := "05/24/2012"
			oCalendar:MinDate := "05/13/2012"
			oCalendar:MaxDate := "05/26/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 09:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:45:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 14:30:00")
			oEvents:Add("05/24/2012 12:45:00","05/24/2012 15:45:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
219
Is it possible that the time is displayed starting from 00:00 to 24:00 00 instead of 08:00 AM to 04:00 PM

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oTimeScale
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DayStartTime := "00:00"
		oSchedule:DayEndTime := "24:00"
		oTimeScale := oSchedule:TimeScales:Item(0)
			oTimeScale:MajorTimeLabel := "<%hh%>:<%nn%>"
			oTimeScale:Width := 32

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
218
How do I show a double frame

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1,oEvent2,oEvent3
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:DefaultEventLongLabel := ""
		oSchedule:DefaultEventShortLabel := ""
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("01/10/2001 08:00:00","01/10/2001 10:00:00")
				oEvent:BodyBackgroundExt := "top[25%,back=RGB(255,0,0),align=0x21,pattern=0x000,frame=RGB(0,0,0)],client[back=RGB(255,255,0),align=0x21,pattern=0x000,frame=RGB(0,0,0)]"
				oEvent:SetProperty("BodyBackgroundExtValue",1/*exIndexExt1*/,1/*exBackColorExt*/,255)
				oEvent:SetProperty("BodyBackgroundExtValue",1/*exIndexExt1*/,2/*exClientExt*/,"35%")
			oEvent1 := oEvents:Add("01/10/2001 10:00:00","01/10/2001 12:00:00")
				oEvent1:BodyBackgroundExt := "top[25%,back=RGB(255,0,0),align=0x22],client[back=RGB(255,255,0),align=0x22]"
				oEvent1:SetProperty("BodyBackgroundExtValue",1/*exIndexExt1*/,2/*exClientExt*/,"35%")
				oEvent1:SetProperty("BodyBackgroundExtValue",2/*exIndexExt2*/,1/*exBackColorExt*/,65535)
			oEvent2 := oEvents:Add("01/10/2001 12:00:00","01/10/2001 14:00:00")
				oEvent2:ShowStatus := .F.
				oEvent2:BodyBackgroundExt := "left[4,back=RGB(128,128,128)],top[25%,back=RGB(255,0,0)],client[back=RGB(255,255,0)],none[(0%,0%,100%,100%),pattern=0x000,frame=RGB(0,0,0)]"
			oEvent3 := oEvents:Add("01/10/2001 14:00:00","01/10/2001 16:00:00")
				oEvent3:ShowStatus := .F.
				oEvent3:BodyBackgroundExt := "left[4,back=RGB(128,128,128)],top[25%,back=RGB(255,0,0)],client[back=RGB(255,255,0)],none[(4,0%,100%-4,100%),pattern=0x000,frame=RGB(0,0,0)]"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
217
How can I add more colors on the event

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:Calendar():Selection := "01/10/2001"
		oEvents := oSchedule:Events()
			oEvents:Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):BodyBackgroundExt := "bottom[15%](left[65%,frame,back=RGB(128,255,255)],client[back=RGB(255,0,0),frame])"
			oEvents:Add("01/10/2001 10:00:00","01/10/2001 13:00:00"):BodyBackgroundExt := "right[15%](bottom[35%,frame,back=RGB(128,255,255)],client[back=RGB(255,0,0),frame])"
			oEvents:Add("01/10/2001 11:00:00","01/10/2001 14:00:00"):BodyBackgroundExt := "left[33%,back=RGB(0,128,0)](top[50%,back=RGB(0,255,0)]),left[33%](top[33%,back=RGB(0,255,255)],top[33%,back=RGB(0,0,128)],client[back=RGB(0,0,255)]),client(top[25%,back=RGB(240,240,240)],top[25%,back=RGB(192,192,192)],top[25%,back=RGB(128,128,128)],client[back=RGB(0,0,0)])"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
216
When I have 3 month visible in the calendar section, it seems I can only move back and forth through the months 3 months at a time. Is it possible to move back and forth through the months 1 month at a time
#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:AlignDate := .F.
			oCalendar:MinMonthY := 2
			oCalendar:MaxMonthY := 2

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
215
How can I bound the control to a data source

PROCEDURE OnError(oSchedule, Error, Description)
	DevOut( Transform(Description,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule
	LOCAL rs

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Error := {|Error, Description| OnError(oSchedule, Error, Description)} /*Fired when an internal error occurs.*/

		rs := CreateObject("ADOR.Recordset")
			rs:Open("Events","Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Program Files\Exontrol\ExSchedule\Sample\Access\datasource.accdb",3/*adOpenStatic*/,3/*adLockOptimistic*/)
		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "11/11/2013"
		oSchedule:SetProperty("DataField",1/*exEventStartDateTime*/,"Start")
		oSchedule:SetProperty("DataField",2/*exEventEndDateTime*/,"End")
		oSchedule:SetProperty("DataField",11/*exEventExtraLabel*/,"Extra")
		oSchedule:DataSource := rs
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
214
How can I start drag and drop an event

PROCEDURE OnOLEStartDrag(oSchedule, Data, AllowedEffects)
	/*Data.SetData( "your data to be dragged" )*/
	AllowedEffects := 1
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:OLEStartDrag := {|Data, AllowedEffects| OnOLEStartDrag(oSchedule, Data, AllowedEffects)} /*Occurs when the OLEDrag method is called.*/

		oSchedule:BeginUpdate()
		oSchedule:OLEDropMode := 1/*exOLEDropManual*/
		oSchedule:SelectEventStyle := 48/*exLinesSolid*/
		oSchedule:DefaultEventLongLabel := "<%=%256%><br><%=%5%>"
		oSchedule:DefaultEventShortLabel := oSchedule:DefaultEventLongLabel()
		oSchedule:Calendar():Selection := "01/10/2001"
		oSchedule:OnResizeControl := 3073/*exCalendarAutoHide+exCalendarFit+exResizePanelRight*/
		oSchedule:Events():Add("01/10/2001 09:00:00","01/10/2001 12:30:00"):ExtraLabel := "Click the event and wait to start dragging."
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
213
I use the HighlightDate property to mark a date, instead the selection is not visible if I select the same date. What can be done

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowHighlightDate := 4353/*exHighlightDateCalendarEllipticClip+exHighlightDateCalendarGradient+exShowHighlightDateCalendar*/
		oSchedule:Calendar():Selection := "01/01/2001"
		oSchedule:SetProperty("HighlightDate","01/09/2001",65280)
		oSchedule:SetProperty("HighlightDate","01/17/2001","65280,255")
		oSchedule:SetProperty("HighlightDate","01/25/2001","255,65280,16711680")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
212
How can I arrange the colors to highlight the date vertically

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowHighlightDate := 49/*exHighlightDateVertical+exShowHighlightDateCalendar*/
		oSchedule:Calendar():Selection := "01/01/2001"
		oSchedule:SetProperty("HighlightDate","01/09/2001",65280)
		oSchedule:SetProperty("HighlightDate","01/17/2001","65280,255")
		oSchedule:SetProperty("HighlightDate","01/25/2001","255,65280,16711680")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
211
Is it possible to highlight a date in gradient

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowHighlightDate := 257/*exHighlightDateCalendarGradient+exShowHighlightDateCalendar*/
		oSchedule:Calendar():Selection := "01/01/2001"
		oSchedule:SetProperty("HighlightDate","01/09/2001",65280)
		oSchedule:SetProperty("HighlightDate","01/17/2001","65280,255")
		oSchedule:SetProperty("HighlightDate","01/25/2001","255,65280,16711680")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
210
Is it possible to highlight a date in the calendar panel only

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowHighlightDate := 1/*exShowHighlightDateCalendar*/
		oSchedule:Calendar():Selection := "01/01/2001"
		oSchedule:SetProperty("HighlightDate","01/09/2001",65280)
		oSchedule:SetProperty("HighlightDate","01/17/2001","65280,255")
		oSchedule:SetProperty("HighlightDate","01/25/2001","255,65280,16711680")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
209
Is it possible to highlight a date in the control

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:ShowHighlightDate := 3/*exShowHighlightDate*/
		oSchedule:Calendar():Selection := "01/25/2001"
		oSchedule:SetProperty("HighlightDate","01/09/2001",65280)
		oSchedule:SetProperty("HighlightDate","01/17/2001","65280,255")
		oSchedule:SetProperty("HighlightDate","01/25/2001","255,65280,16711680")

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
208
How we need to put "nonworking time" to each group, because staff A is working different times then staff B. Is this possible

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oNonworkingTimes
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:BeginUpdate()
		oSchedule:SetProperty("BodyEventBackColor",AutomationTranslateColor( GraMakeRGBColor  ( { 240,240,240 } )  , .F. ))
		oSchedule:ShowGroupingEvents := .T.
		oSchedule:DisplayGroupingButton := .T.
		oSchedule:Groups():Add(1,"Group 1"):Visible := .T.
		oSchedule:Groups():Add(2,"Group 2"):Visible := .T.
		oSchedule:Calendar():Selection := "05/25/2012"
		oSchedule:NonworkingPatterns():Add(1234,11/*exPatternBrick*/)
		oNonworkingTimes := oSchedule:NonworkingTimes()
			oNonworkingTimes:Add("1","00:00","08:45",1234)
			oNonworkingTimes:Add("weekday(value) = 5","10:00","11:45",1):GroupID := 1
			oNonworkingTimes:Add("weekday(value) = 5","12:00","13:00",1234):GroupID := 2
		oSchedule:Events():Add("05/25/2012 09:30:00","05/25/2012 13:00:00"):GroupID := 1
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
207
I have a double click event set to launch a window so the user can supply input. The problem is that double click changes the view. How do I change this behavior
PROCEDURE OnDblClick(oSchedule, Shift, X, Y)
	DevOut( "DblClick " )
	DevOut( Transform(X,"") )
	DevOut( Transform(Y,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DblClick := {|Shift, X, Y| OnDblClick(oSchedule, Shift, X, Y)} /*Occurs when the user dblclk the left mouse button over an object.*/

		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00"):SetProperty("StatusColor",AutomationTranslateColor( GraMakeRGBColor  ( { 255,0,0 } )  , .F. ))
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:AllowEditEvent := 0/*exDisallow*/
		oSchedule:AllowToggleSchedule := 0/*exDisallow*/
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
206
I have two-time scales. How do I change the label while updating the events to show the date-time on the second time-scale

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oTimeScale
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:DayEndTime := "13:00"
		oTimeScale := oSchedule:TimeScales():Add("+3:00")
			oTimeScale:AlignLeft := .T.
			oTimeScale:Caption := "EST <b>+03"
		oSchedule:BeginUpdate()
		oSchedule:Calendar():Selection := "05/24/2012"
		oSchedule:UpdateEventsLabel := "Start: <%=date(%1+3/24)%><br>End: <%=date(%2+3/24)%>"
		oEvents := oSchedule:Events()
			oEvents:Add("05/24/2012 10:00:00","05/24/2012 12:00:00")
			oEvents:Add("05/24/2012 10:45:00","05/24/2012 12:30:00")
			oEvents:Add("05/24/2012 11:30:00","05/24/2012 13:30:00")
		oSchedule:EndUpdate()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
205
Is there a way to add a hyperlink to the event that would run a report with parameters

PROCEDURE OnAnchorClick(oSchedule, AnchorID, Options)
	DevOut( Transform(AnchorID,"") )
	DevOut( Transform(Options,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AnchorClick := {|AnchorID, Options| OnAnchorClick(oSchedule, AnchorID, Options)} /*Occurs when an anchor element is clicked.*/

		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):LongLabel := "<%=%256%><br><a 1234;option 1>more ...</a>"
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00"):LongLabel := "<%=%256%><br><a 1235;option 2>more ...</a>"

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
204
Can I have multiple months in the calendar section

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oCalendar
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oCalendar := oSchedule:Calendar()
			oCalendar:MinMonthY := 2
			oCalendar:MaxMonthY := 2

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
203
I need to make sure that at least the order number stays visible when the event is resized. Is there a way during event modification (another event be added at the same time that makes the event size shrink) to adjust the caption location

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00")
				oEvent:UserData := 1234
				oEvent:ShortLabel := "<%=%256%><br>Order: <%=%6%>"
				oEvent:LongLabel := oEvent:ShortLabel()
			oEvent1 := oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00")
				oEvent1:UserData := 1235
				oEvent1:ShortLabel := "<%=%256%>, Order: <%=%6%>"
				oEvent1:LongLabel := oEvent1:ShortLabel()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
202
I need to make sure that at least the order number stays visible when the event is resized. Is there a way during event modification (another event be added at the same time that makes the event size shrink) to adjust the caption location

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:Calendar():Selection := "06/20/2012"
		oSchedule:DefaultEventShortLabel := "<%=%256%><br>Order: <b><%=%6%>"
		oSchedule:DefaultEventLongLabel := oSchedule:DefaultEventShortLabel()
		oEvents := oSchedule:Events()
			oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00"):UserData := 1234
			oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00"):UserData := 1235

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN
201
Can you add text with links in the event

PROCEDURE OnAnchorClick(oSchedule, AnchorID, Options)
	DevOut( Transform(AnchorID,"") )
	DevOut( Transform(Options,"") )
RETURN

#include "AppEvent.ch"
#include "ActiveX.ch"

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oEvent,oEvent1
	LOCAL oEvents
	LOCAL oSchedule

	oForm := XbpDialog():new( AppDesktop() )
	oForm:drawingArea:clipChildren := .T.
	oForm:create( ,,{100,100}, {640,480},, .F. )
	oForm:close  := {|| PostAppEvent( xbeP_Quit )}

	oSchedule := XbpActiveXControl():new( oForm:drawingArea )
	oSchedule:CLSID  := "Exontrol.Schedule.1" /*{9B09E13D-7A88-4299-9DBE-383380435377}*/
	oSchedule:create(,, {10,60},{610,370} )

		oSchedule:AnchorClick := {|AnchorID, Options| OnAnchorClick(oSchedule, AnchorID, Options)} /*Occurs when an anchor element is clicked.*/

		oSchedule:Calendar():Selection := "06/20/2012"
		oEvents := oSchedule:Events()
			oEvent := oEvents:Add("06/20/2012 09:00:00","06/20/2012 11:00:00")
				oEvent:ShortLabel := "<a 1><%=%256%></a>"
				oEvent:LongLabel := oEvent:ShortLabel()
			oEvent1 := oEvents:Add("06/20/2012 11:00:00","06/20/2012 13:00:00")
				oEvent1:ShortLabel := "<a 2><%=%256%></a>"
				oEvent1:LongLabel := oEvent1:ShortLabel()

	oForm:Show()
	DO WHILE nEvent != xbeP_Quit
		nEvent := AppEvent( @mp1, @mp2, @oXbp )
		oXbp:handleEvent( nEvent, mp1, mp2 )
	ENDDO 
RETURN