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\Access2007\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\Access2007\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