104
Fullfit the caption on the element's width

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;methods>+</a><br>+ withdraw(amount: Currency)" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComCaptionSingleLine of hoElement to OLEexCaptionBreakWrap
			Set ComBackColor of hoElement to (RGB(248,248,248))
			Set ComAutoSize of hoElement to False
			Set ComWidth of hoElement to 194
			Set ComHeight of hoElement to 76
			Set ComCaptionAlign of hoElement to |CI$4
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
103
Wrap the caption by <br> or "\r\n" sequence only

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "<solidline><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;properties>+</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;methods>+</a><br>+ withdraw(amount: Currency)" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComCaptionSingleLine of hoElement to OLEexCaptionBreakWrap
			Set ComBackColor of hoElement to (RGB(248,248,248))
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
102
Display a custom tooltip
// Occurs when the user moves the mouse.
Procedure OnComMouseMove Short   llButton Short   llShift OLE_XPOS_PIXELS   llX OLE_YPOS_PIXELS   llY
	Forward Send OnComMouseMove llButton llShift llX llY
	Send ComShowToolTip "new content" "" "+8" "+8"
End_Procedure


101
Shows the tooltip of the object moved relative to its default position
// Occurs when the user moves the mouse.
Procedure OnComMouseMove Short   llButton Short   llShift OLE_XPOS_PIXELS   llX OLE_YPOS_PIXELS   llY
	Forward Send OnComMouseMove llButton llShift llX llY
	Send ComShowToolTip "<null>" "<null>" "+8" "+8"
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element with a Tooltip" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComToolTip of hoElement to "This is a bit of text that should be displayed when cursor hovers the element."
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
100
Add a pool to cover all visible-elements

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools Nothing Nothing Nothing Nothing to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderSize of hoPool OLEexHeaderLeft to 24
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
99
How can I ensure that a specified pool fits the surface's visible area
Procedure OnCreate
	Forward Send OnCreate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools Nothing Nothing Nothing Nothing to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voPattern
			Get ComPattern of hoPool to voPattern
			Handle hoPattern
			Get Create (RefClass(cComPattern)) to hoPattern
			Set pvComObject of hoPattern to voPattern
				Set ComType of hoPattern to OLEexPatternBDiagonal
				Set ComColor of hoPattern to (RGB(224,224,224))
			Send Destroy to hoPattern
		Send Destroy to hoPool
		Variant voPool1
		Get ComAdd of hoPools 2000 Nothing Nothing Nothing to voPool1
		Handle hoPool1
		Get Create (RefClass(cComPool)) to hoPool1
		Set pvComObject of hoPool1 to voPool1
			Send ComEnsureVisible of hoPool1
		Send Destroy to hoPool1
	Send Destroy to hoPools
End_Procedure
98
No property for the pool can be saved/restored through Undo/Redo feature

Procedure OnCreate
	Forward Send OnCreate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -54 -47 244 112 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant l
			Get ComStartUpdatePool of hoPool to l
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Set ComColor of hoLane to (RGB(240,240,240))
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 2
				Send Destroy to hoLanes
			Send Destroy to hoLane
			Send ComEndUpdatePool of hoPool l
		Send Destroy to hoPool
	Send Destroy to hoPools
End_Procedure
97
Rename Undo/Redo commands into the control's toolbar

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Set ComToolBarFormat to "-1,100,102,101,|,103,104"
	Set ComToolBarCaption 103 to "Anuleaza <img>4</img>"
	Set ComToolBarCaption 104 to "<img>5</img>Reface"
	Set ComToolBarToolTip 103 to "Anuleaza ultima actiune UI. Pentru a anula o actiune apasati Ctrl+Z."
	Set ComToolBarToolTip 104 to "Inverseaza cea mai recenta operatie de anulare. Pentru a reface o actiune apasati Ctrl+Y."
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
End_Procedure
96
Add Undo/Redo commands to control's toolbar

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Set ComToolBarFormat to "-1,100,102,101,|,103,104"
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
End_Procedure
95
Clear Undo/Redo queue (method 2)

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Variant c
	Get ComUndoRedoQueueLength to c
	Set ComUndoRedoQueueLength to 0
	Set ComUndoRedoQueueLength to c
	Showln (ComUndoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
94
Clear Undo/Redo queue (method 1)

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Set ComAllowUndoRedo to True
	Showln (ComUndoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
93
Removes Redo operations

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComUndo
	Send ComRedoRemoveAction 10 Nothing
	Showln (ComRedoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
92
Removes Undo operations

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComUndoRemoveAction 10 Nothing
	Showln (ComUndoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
91
Record the UI operations as a block of undo/redo operations

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Send ComStartBlockUndoRedo
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComEndBlockUndoRedo
	Showln (ComUndoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
90
Groups the next to current Undo/Redo Actions in a single block

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComGroupUndoRedoActions 3
	Showln (ComUndoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
89
Limits the number of entries within the Undo/Redo queue

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Set ComUndoRedoQueueLength to 1
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Showln (ComUndoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
88
Lists the Redo actions that can be performed on the surface

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComUndo
	Showln (ComRedoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
87
Lists the Undo actions that can be performed on the surface

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Showln (ComUndoListAction(Self,Nothing,Nothing))
	Send ComEndUpdate
End_Procedure
86
Checks whether the Undo operation is possible

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComUndo
	Showln "CanRedo" (ComCanRedo(Self))
	Send ComEndUpdate
End_Procedure
85
Call Redo by code

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComUndo
	Send ComRedo
	Send ComEndUpdate
End_Procedure
84
Checks whether the Undo operation is possible

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Showln "CanUndo" (ComCanUndo(Self))
	Send ComEndUpdate
End_Procedure
83
Call Undo by code

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComUndo
	Send ComEndUpdate
End_Procedure
82
Save the element's properties for Undo/Redo operations, by code

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Send ComStartBlockUndoRedo
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Variant h
			Get ComStartUpdateLink of hoLink to h
			Set ComColor of hoLink to (RGB(255,0,0))
			Set ComWidth of hoLink to 2
			Set ComShowDir of hoLink to False
			Set ComShowLinkType of hoLink to OLEexLinkStraight
			Send ComEndUpdateLink of hoLink h
		Send Destroy to hoLink
	Send Destroy to hoLinks
	Send ComEndBlockUndoRedo
	Send ComEndUpdate
End_Procedure
81
No color is restored for the link when Undo/Redo operation is executed

// A new element has been added to the surface.
Procedure OnComAddElement Variant   llElement
	Forward Send OnComAddElement llElement
	// Element.ShowCheckBox = True
	// Element.CheckBoxAlign = 2
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Check <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Check <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComChecked of hoElement to OLEexChecked
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComStartBlockUndoRedo
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Variant h
			Get ComStartUpdateLink of hoLink to h
			Set ComColor of hoLink to (RGB(255,0,0))
			Set ComWidth of hoLink to 2
			Set ComShowDir of hoLink to False
			Set ComShowLinkType of hoLink to OLEexLinkStraight
			Send ComEndUpdateLink of hoLink h
		Send Destroy to hoLink
	Send Destroy to hoLinks
	Send ComEndBlockUndoRedo
	Send ComEndUpdate
End_Procedure
80
Save the element's properties for Undo/Redo operations, by code

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
	Send Destroy to hoElements
	Send ComStartBlockUndoRedo
	Variant voElements1
	Get ComElements to voElements1
	Handle hoElements1
	Get Create (RefClass(cComElements)) to hoElements1
	Set pvComObject of hoElements1 to voElements1
		Variant voElement
		Get ComAdd of hoElements1 "Item <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Variant h
			Get ComStartUpdateElement of hoElement to h
			Set ComBackColor of hoElement to (RGB(0,0,0))
			Set ComForeColor of hoElement to (RGB(255,255,255))
			Set ComBorderColor of hoElement to (RGB(255,0,0))
			Send ComEndUpdateElement of hoElement h
		Send Destroy to hoElement
	Send Destroy to hoElements1
	Send ComEndBlockUndoRedo
	Send ComEndUpdate
End_Procedure
79
No color is restored for the element when Undo/Redo operation is executed

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
	Send Destroy to hoElements
	Send ComStartBlockUndoRedo
	Variant voElements1
	Get ComElements to voElements1
	Handle hoElements1
	Get Create (RefClass(cComElements)) to hoElements1
	Set pvComObject of hoElements1 to voElements1
		Variant voElement
		Get ComAdd of hoElements1 "Item <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Variant h
			Get ComStartUpdateElement of hoElement to h
			Set ComBackColor of hoElement to (RGB(0,0,0))
			Set ComForeColor of hoElement to (RGB(255,255,255))
			Set ComBorderColor of hoElement to (RGB(255,0,0))
			Send ComEndUpdateElement of hoElement h
		Send Destroy to hoElement
	Send Destroy to hoElements1
	Send ComEndBlockUndoRedo
	Send ComEndUpdate
End_Procedure
78
How can I ensure that a specified element fits the surface's visible area

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" -100 Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Variant voPattern
			Get ComPattern of hoElement to voPattern
			Handle hoPattern
			Get Create (RefClass(cComPattern)) to hoPattern
			Set pvComObject of hoPattern to voPattern
				Set ComType of hoPattern to OLEexPatternBDiagonal
				Set ComColor of hoPattern to (RGB(224,224,224))
			Send Destroy to hoPattern
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" 2000 Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Send ComEnsureVisible of hoElement1
		Send Destroy to hoElement1
	Send Destroy to hoElements
End_Procedure
77
LayoutEndChanging(exUndo), LayoutEndChanging(exRedo) or LayoutEndChanging(exUndoRedoUpdate) notifiy your application once a Undo/Redo operation is executed (CTRL+Z, CTRL+Y) or updated
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" llOperation
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
End_Procedure
76
Turn on the Undo/Redo feature

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -154 -82 244 122 to Nothing
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Item <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Item <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
End_Procedure
75
ImageSize property on 32 (specifies the size of control' icons/images/check-boxes/radio-buttons)

// A new element has been added to the surface.
Procedure OnComAddElement Variant   llElement
	Forward Send OnComAddElement llElement
	// Element.ShowCheckBox = True
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComImageSize to 32
	Variant voStdFont
	Get ComFont to voStdFont
	Handle hoStdFont
	Get Create (RefClass(cComStdFont)) to hoStdFont
	Set pvComObject of hoStdFont to voStdFont
		Set ComSize of hoStdFont to 16
	Send Destroy to hoStdFont
	Variant voStdFont1
	Get ComContextMenuFont to voStdFont1
	Handle hoStdFont1
	Get Create (RefClass(cComStdFont)) to hoStdFont1
	Set pvComObject of hoStdFont1 to voStdFont1
		Set ComSize of hoStdFont1 to 16
	Send Destroy to hoStdFont1
	Send ComImages ("gBJJgBAIDAAEg4AEEKAD/hz/EMNh8TIRNGwAjEZAEXjAojKAjMLjABhkaABAk0plUrlktl0vmExmUzmk1m03nE5nU7nk9miAoE+oVDolFo1HpFJpU5h8Sf9OqFNqUOqNUqdPq9VrFWrlbr1QpdhAFAkFis1ntFptVrtkrpszrNvmVxqk3uVtm1kmF3sdBvF/wGBmV+j9BYGHwWJulfxdax2NyFdx2JlV6l9Nw7AAGZymdz2Cy2GxErvWcz9ivlwyV21cuxugwktzGIzmvwtl0+53U5y0a0Wazmmyu/3dCyOMyXHx/J5nIr9q3uyqnBxFN3G46ma4vb7mD2Ng4nZze00fDkHC7t7us2rOX5tguetpHRlmz4HVqnXk1PjHO+CMPo9MBMC+j2vC8j7wS8cFNI4kBo05UIvfCT/NsnsApU+0Fqg/T+oy/kPxC0sEQfErKQK96+w28UWRI8UGvO8sTLS9r2PWmsMJTDTask3CsIbIEQRA3shOXEEAO/GclJ9FEKrrA8FRbKMXRIlb0JxCkjS1LMswhCcvuel0cv26cSMa8Ufx+2sQwhEUoSXOCjSbLcnxjKc7sdKUVyq28NtVI71P9P7JxtQEapjQ6fzfM8zPfNE2PhIsLL63E40slk5y7N89LcyU9SvMb3SdUc6VJLj5VLVLfO/PS9KzNFHUa/0XyBD0dxlS9cxhMlTRSoNXypPErWDPyfNS+MwprRNO0FD8wVVZ1AI08URwVRjtJ1WCn21QkkUrXVLVPQS/XIkFgTxT9iONZ9xVTdq+L1eKg3kkF6Upe68XtfV51/MtrVjBlwYFL1ev8y1/P6/lyzzYl02wntj0RVFmS1Qa+M5as93QxEUW9e993rfmQ2+vy65M/mL1lhl/2bj2ByVduMtNhCJT9hdz41nN14Ld12Z9UjfI/oUAaGseiw6+uFLLhcVabJOS5RqOE0BHlZ5VnEr5fOMs3st+aa/bbRzrJGV51Y0b0DbqaWXZD90hIsPbjWu52+6Wyadpe66hhO+P/XioW5rD8ZbrUZuVg6n1dsE/cXmewu1m9PVwnd35/nueXho/NaJzmjc61W76esuT77eG8pTquy9TwWH8LEzG8RDfFalx3Gcfvna9rvG/cptGLd9tuI6TZOP5Fiqi99vea+X4VRcBq/JZZtVQ9cwSs5lsXE372+a9z7PbfB3VVqHyvMctLto8uob6eV0m/cD6MN2v+T33t6sBut42vdv2bJ8a997x2maFJfK+qArbGJPEKE+1qTflMsIdW/GCJX17KcT6/czr/X+u1g29B7j/4BQfWkkx4zIHisjhPCmE0K4SwtXM+d4BvHRwNZOoBph9IJvPek9d40FoMJxf691jj2ywQQcHEWET4XJwkTszlVqm2GokewxtBT1DpQjRxDN0rUVDNKdC3lb6tzNOwh6upMSSYfv4YBCl/bsn9PxiFCEo7SI6Obc9HeOrnY8x4jtHtdpN4GRbaorhsbu18Pph5CiHymI0RpSXGJ/z2oUOxYxG858AyiI+bfJtuTcG5yelBJyT8okhqFd4a5yxL0rvulYtKCsZiWxWkc1s1cRoxxwhA31DLE0mR9l9HqX8fJgTDmFMVH0MIsRzVYnwnMi1dyzmhLt2kS2pxIiU62Wj5ptQGlSYFakLonTUJNLKaM5WzlffEkuFkk5wTrhVO2eE7G6lJhxFFYUZ55zmn0WuBCD4pzhirFCKkbomsOoIYmZx5p90LoYWGPdD5g0QmJRKYxbZ6zYoVQ2jVGylSak7KSkFH6RSjpHKFuU+YMyNo5SulkC6I0vonTCitMXPoEpVS2H5FQfEqp2R1opIgAEkJISYARTCukOhmPNI5Ex/wzGHUsicMwA1LHgQ90Y/KpoQHAD+pB/R4NzIaMAB9Xaw1gqaAOsh/A/ptIkWUfhGK1kZH8RgH5GqvgArqRmt4AAPrTroRofBGADkqr6Rmu4D7CEaHARiwpJrEEZsXXwlVjyMWRsaRqwdkLGNBABZmytmyMnaINZqyVpLR2ftKAAAdd6h2osbaskdiq4EZtgSmyNcbVW" + ;
"RJNXe3AA7REar3b0stlAAXBtoRmvJGLjEYAHUWsFcwCD/rnaop9aEICMAPdK5hT6xpeuzdOtAgKuJeGfdq6ggEbkTvAP+p9UCHXrvKkcgIA==")
	Variant voAppearance
	Get ComVisualAppearance to voAppearance
	Handle hoAppearance
	Get Create (RefClass(cComAppearance)) to hoAppearance
	Set pvComObject of hoAppearance to voAppearance
		Get ComAdd of hoAppearance 1 "gBFLBCJwBAEHhEJAAEhABfICg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsOatVqjG5sYjcGC3La9cz3Pq/bpuDCbMxuaK1TrYXr1TTrcofBDldAxXRKDxRDWVhLnYOw9i6XxzjuXprCaOoKB6EwbiCZZCGOdZYlcT4xHmbhMnwNxtn+G5bmqdZ7n4Pw/i+X5zm+dQ9g4CAFjsfAJheOI8HsDoWDWTB/lwSAQkmA5PEgRYoDyDwYFYFoFmGCBmBqBphDgRJ0gOTIYBGRB/lyRh0iSCZbjYWJzgWDwIjYLoLmMCJGDKDJjBgWgqG6YhyhGHRzA2aJ1mCABOAiOJvhCZBJBYRoRmSCQmEqEQimkAZgg8TZnDCV4UkmCUmBKZYJGYWoWCUUhiFMNZckNUh2GENoaGaGZmgmJhqhqZpGGIEx2GYIxSGGGJdggWJth2Z4JmYeoemeSZ2H6H4hGmQhihyTRHGYLg7CiCgmgqIpokoNoOiOaJ4jqAochqaZGgaCxpAoZoaiaaJqEmWIcGgShcnCJwqEqFoR3YOoFlgchflqNouiuawHmWSYqGkWZQhcatzmaOoumuSp2j6L5bBaKo0GQKRnGGCxqiyCwmkqMpsksNpOGUGI7A0ew1G0Rxlg0PptgsZuDG2Sx2l6N5tnYNZZjUDRXDCVo5l2FoymqOpukuNpujubwLjmWY5k0ZwxkaFxYlWdp6j6b5Lnafo/nABQdg2FxcUsY5BkmXAkmeQpckwNRrkKTh8CSHZBk4NwyC4KxxgMDwakOMZDn8GgwnGAo2C4cwthMcwmCcMoHBMHRehwTIghySYNksZwcH4HBMEsHx5hyPItiweYxnwSZEH4Mozn0fR+DMAo7EYJ50gkdZelKdNql2UgJn0GIukwH4HicQRai2GI4mSVpNl0dZGledgNgcYpYDWUx3FsOQi5YV5anaTY3G6W53A2RxylydxFjiaxEFCCgBBAQ==" to Nothing
		Get ComAdd of hoAppearance 2 ("gBFLBCJwBAEHhEJAAEhABcoFg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4nGKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEokiEN5NCKfJ9DyTRjnScg1CEYxOBmBpPCgagdgcIZoHoGIFA4AxQkCAxKAgKBwgGSpIBCZhjF2E5UnQPQMiMCJBCIBwxkSQgsgo+JtDKT4ziiQw+k6EwAnsOgLnkHI+yCQ4iEuE4klkPhShEJBpAoPgymOMoaDgHBjFMBgyD0HYTiCZSZhIIIGC4ChiHSew5kwM5omILZPiOBI0hwZw5kodIdA+M4Uj4PxOmMSJ9DuTQzmyZgviceZagaHVfj4awwmaAh2GUIYmCOEZZDaDRDFGdwcg4EwyHMN4LBOaJbCoaZqgKH8qkMfIyD8DozDyfA7A0Coui0OpMmOZJdCsahKg6NooioChwmEMxLEoXJbDUTRXGSUgykyMgQG0GpPHMdI3D4TRCgSeQ0kmaw+lGNAtCOZJVCiT5DhyRQwAqMg0EoDBBGEGAsASC5yiSCw+k4Mp6lWNQuksTpRjMTxDGzJwGmGMpDDKXYTECSAxl6Q5olkK4PgMMIVkASRMBMBgzEkaZEjsNALhIZA6AeQBgk0ZJEgAAJ0CIAgODMNIsD6DRih9uYwFyAwfCUb5ijmbI+gwdxkk8MZMGeMpPCkDxzBiC5MHMPJLDSSROFMLIoBEQogEMFJPnENYQGgE4DCOaJfC7tYkhGTQ0kyWwykuXpMiyRpKjKR4wngM4JmOWJACCdYtHMWw+Eych4nINYLAEYA8AgdAEEsQZajaQoog4GxPiMVIolcdxNG8XZVkmNoRwWRVBlFeFEeAZQJgnFiHgHwcAhjhHgGMSI5xki2CyA4EQsA3i0HkBsLwKRFgAHcPkHopBJBcBeDUYI7xyDOHqKkWo2hLCsDIBIY4qQ5A8DoMMYwOAqCSBGKgU4yB2iDBwIgB4hxQgAAWNgBoAgsBdEcBUQ4sQ9A/HqD0JI8RpBzH2OYVgahLBHFiJQJweQiDhDUE4SAARQAzFsG0EQwA6AOWSBkFgVAIBCHeGERQFQiCQHeFkC4vkiB8DyB4F4QxVDvGMNEOQexMjlBeOAKQiQLgfDA7QEAaRiBdEkH8TI7AZiFBAGYBIABWjYBiGACioQ4C1A+AMMgWhfgxHgPsT4URIB0COKgPgjRwiAB8AYUArxBgCF6J4GY5hrAOCAPAAoGRRCsCIMEXATXfgAF8BMJwURuEQDgD4Q4OBoAeHGFgLIwQrC2D0JoSQ+QvhrHoSgQI8AbDFGID8C4Ah6BQAQAASACwgCYCMAUMARAvCKAiAMCAokeCKBEOAKgCBoDaHuMsEAqwJDiACDURg8R6gPCyDofYWAhgoDIJ4ZAuhoiGAYGgRoQw/A0GMMga4GwxiEDeIYYInATCDBQAoBAwAoDlA0KMBoVRGiDGwDQUYIRsgaGGDgM4LAwDWB8EcIA1APhjEgGQVwgRIgjFIIQHokgZA+CSEkLIKQSjHAwMsCwDAsAEB2ABTIwRwD6A8CMToSxkAxE4HYIw+BsgbBEDAHYBwojCBoIYFgXSjABE4MsHIbQWhlGILQS4UhvBdAUKEEwHgxDAAABQQQUAhgKHiDwE4JS4A7BGLQZwCR4g" + ;
"aBEMUYAqgKApHgGwVAIRNgvBMMQXImwZDtE4I8UIyAZCDCAE8AwrhgAdEEBACQLRCg4FEB4AYtA7CdEiPQMoJAMDNCkOMCAXAFDhH0D0Q4EgfAaGSK4NYzRUj9BuCgAgswOBjB4Fqpw8B2ADAwE4A4Qx2DAE6JIaQPQGhAGKBcIQ5B5gHByKIFARwADbAyKUfgdBKBBGyEcVIAB/ijHoIoSA0gdBNl+OATYERZgBGSDYWIWAUCEGKA4FAhR7CIBtYQGYZg4CMAiKEcAOwkBjHWE8Z4lQgA+DkBoTohwwCeAaMEEgBQCCABgHMRwQRhhMEWFQd4HwZgwDqFESItAbAGEANCpINAzANCCJkK4ah+heFYBURwsQrS2CsMYMoWGBhYDWI0EInQgiApXaOVI1QFDsC8MUNoMBMA1HMJga4eh+BeAWOgNNowGjYzCGAAwax+iJBeBVT4gxoBIAGFsJFBxgBiGKFkKQ7g5DFFQEcAo4AzDDACKEQQLgCiJDYB0MgRBCCQAgQEA==") to Nothing
		Get ComAdd of hoAppearance 3 ("gBFLBCJwBAEHhEJAAEhABQ4Fg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziaQAGgkNQwCSLIwjNIsBxPFKVQChEYxSjKA40SJNUgyj6CCY+QLIE5PfQgAL9I6eJABCCSQKkYx0HScRiwPBIbAZAYhCZqaKhWgkKI/WBQIABRDVLx5ESiLRtKy7Mq2bpvXBcNxXHalaztO68LxvKyqHb5fJ/PpgL4YHgmC4NQ7EMRwF6rfbyfZ7Xg/ORPTijZ4sdzMHTzJyscx3HqfaBoOaZU5eMLceTUMofHIndxCcasPbsLpOS5LNKsaxmWLYdhFdTxQi6LpvfA8BwXC6JY7heRYRbFbYxRjGNi1TS7G4nGKd5WGuL4UHwI4VkaYxii8V4pgQMgVBQdQ5iCTYGi8T4vlWbJ3nuPg+l+H5AlSCg6ByPBoE8Ap3jqYxhBido5g0OgOGOGI4CsSpCCAcgcAuEosiYN5NHMOJ+D4TpTnSeQ7CEY4uBmBpPhgagdgcIZoHibIEyUBJZDQIJShoCgcCAcoyAQOYYlcZJ1D0DxDCiQgwEiAZMHEMJLFKPJ9D2DoDnidQ4k+Y5QmKEROBkIhKD0JIZDIS4TGUCQuEeEJjnOIg8CuY4RkYNgwGMM5RllGpThDRYIGKZIpCkJFUH0PINyWcQ3CaaZCG+HBnEOTJhD8Tx4GoeQ/GcaZSHOH5nCmQhshoZhihYYwhiYA4RlkNoNEMUZ3ByDjwEsPxOnMaJ9DuDR6F6GYmCmKh0nANtMioP4Gg8aoSiIO5NhodociqaY6GaFYkEyOg8lsNRNTaUgykyMgQG0GpPiONJbD8DpDEyfA6k0KwOkWMQsGsAJU0SagwkoJQJDIPISCQCJTGSUwyGaM4KkmMgtksHpFjAZ4TGCBAbgaSpcksdhNAMIJHHsD5TjSWWMAMOpwjyLwbk6cAz0KRJiDkDYzESCwiggcgcgYIQwCIEINCMCITj6TVxkMXp2j0cQLlCTo7E2F4ymkMZdhMPJHDGHpLAyVg+k4UwrCCSIyByDJ8DuDY8CiWY0kiXAXC6QJwFKGIjCeJpjgyezjlyDw6klHx5myRoMGwZwbkcToTEiew4kwbQfEmUgPkOKJUD4DpTHSHQmgkXI/ASTA1g0XIEDMTBimyfI7jSLYHEiUoPk0Fw/kadAsHGao8A0A5smEMJ2mNyg5gzJZwDgCpChyIZVyIZwFCMJEPASRkBqE+IcHInRcDxA2H4bIsx0AtDsIBpwZwYicD6BscwDwUBgHCIYaIfgtiVH2O4WgUwJjEFeAEQA7y4hMCiBMS4aRdB9A4CYE4LxljyBMHcDItBxinDCLcTYmgejBFQ9UTg9gFBOEmAQTI7A4iZGMGkQAWQ7jYA2HIL8BRAjDG4HcCwARbjZHiNoDw1nLDnGyNINQ+wjCpBMEgcovQUgICQJEcgWRuBvAyJ4d4ugpCUAINcHogxIgnDiM4N4axzD3F2JMTY/hRqYF6FsWIxhYAGGoAALQYgYirBwBEBwpAjBEAAIEIYsA2gOHCMAGgXAACIDmMITAUgFABH0D0I4WwvhNFGMAOIvxRD2GKNcMA8gjAPDCPwBogRPAxA8PgRwZRICYDED8RAXQEghEAN8DIgwIBdB4JYWwMgtiQHoFQKAiRFguFKGwGQhglDsEOVwEQQRkCKBwOIHgSREDRBYHEXQcQdD7GIGARQHRxipBrMobgewDCUCADsEYWAzgMHKHQDQxxsDzA6EMfAeQHB4GQDkUYPA0iECiKoGgRhcDdA2GMQA8AOCjDSPgHI4QnApAKBICwHg1A+BcAwcYsgbjGGQNkCIgRsA6EcBEWANADjsB0B8YYzQQDIGSBcEYZBCCPEkFIHQSgkgZAwG4IwBAbAYGGAgL4Ch4g8BOCQAA2KKC0GcAke4AAXAFCoHkDw4xbBFEcJkE4JRSiEFeJYKQVRMgJHODwX4xAgC/AsIIZAeAHDRG0HYI40RKCLEGDUI4jAghwBWIceA+whCpHMFYZYOQxglDMHMBQGxYj" + ;
"VHiAoBIPgfgHGwPsHYJRSB6A0IERQLhCjJHMA4OQoAoCOACLYGYSx8DpBQIMWQdRnDRH+DsE4fB3CeAmM67kAAXBFEIDYDI7wLBtEoEIfYNwjiUGGJQYQMAjCHEAO0C4zxW29CoCgfIxR9AKA6J8BgUAIhDGMIoJ40hqgwCgKETgnBhhqCGI0AIqgZhGDANQDIlBDCRGkCoJISR0g1BSKQOgfAzBRG0DYHARh4DeDAOwANuw8ApCKKkYg/RPhjBsH0J4yg5hPGWN0GwFBHQBFaDoQIURljFAoB4GgzRVzbBECQFQRQoguHGHANwDRdCKy8CgSIGwhhoDYJYYI1giBICSAEgI=") to Nothing
		Get ComAdd of hoAppearance 4 "gBFLBCJwBAEHhEJAAEhABUYCg6AADACAxRDgMQBQKAAzQFAYbhkGCGAAGMZxRgmFgAQhFcZQSKUOQTDKMIziYBYfgkMIgSbJUgDGAkRRdDSOYDmGQYDiCIoRShOMIjHLUXxtDaIZwhEAoJb+RgAUY/cTzaAEUwHHiTKInaCQShsFYJUJAdRURQ9EwvCIZBpEWwLChENQwWLCNj2TScBwjCyqbale45ViqdoDU5EUiXJJ8ZxnECfYyrGjaMpCeKBUrGYTVRBIMxLLSia5oeJqMrnBpNVrIUgXCAGFwHK6BcauXIIDp6XoWWRbAAWDpVVzNNC3YzkCIceADHKiXxmVz4JLdGZ1QTGID2XaYaxWK4oZjsVSc4KDHbETbHFi9Fo3NaaxGisew+GYc4HlCR5NAAAIIEkQJSGMOgdE4RhYDwJJsAaAYQgmPpolCWgSCiBJzjcEIAkQXIBm8d5UhOQgCDUIBDDJDhgggJgKgKYJIDSVoDk8KBFF4OohEMZgWDsYYDj4GoGmGSB2B6B5iAiBgYDsYRjGSbIJo4RgqDuIpIAoLoLmMCJGDKDJjJiLA7xqUAAgGTwYnYPoPmQCQGEKEJkEkFg9gGY44BoRoSmSSQ2EKEggHgRhShSZRJFYVoVmWCRmFKFAgGOTheheZgJgYYoYmYSYWGaF4lkMMJ0hqZpJjYbobmcCZGHKHJmjmJh0h2Z4JmYcIaE8WZ2H6H5oAoBoCiCaBKBYfdjGoJoKiKaJKDaDojmkChGgmIgpCoVoWiWaJZiSd4mmmSh2h6J5qAqBoiiiaY5iSeIpmqComiqKpqkqNouiuah6hqMIsmsSpWiuGhP1kOoumuSp2j6L5sAsBo54gKwWkaMZsgsJpKjKbJLDaRYxYWRpSjSbIZiSe41m2CxmlqNptksdpejebR5iSfI4m4S4W16boLiaao6m5fJ9jubwLkaco8m8S5WnaPZunuOp4j6b5Lnac4SA0PAGlgP4wEwFwGkGcIMCcCpCnCCxiA8NYAAmMJfkSbhFCcFpFnGDBnBqRpUhuEwTDeZ5lHCfw6HIQxLCaAxygyJwqgGcATE4FA6hWY4tjEAAQBAgIA==" to Nothing
	Send Destroy to hoAppearance
	Set ComBackground OLEexCheckBoxState0 to |CI$1000000
	Set ComBackground OLEexCheckBoxState1 to |CI$2000000
	Set ComBackground OLEexCheckBoxState2 to |CI$3000000
	Set ComBackground OLEexContextMenuSelBackColor to |CI$4000000
	Set ComBackground OLEexContextMenuSelForeColor to (RGB(1,0,0))
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element Check 2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComChecked of hoElement to OLEexChecked
			Set ComPictures of hoElement to "1,2"
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComHome
	Send ComEndUpdate
End_Procedure
74
ImageSize property on 16 (default) (specifies the size of control' icons)

// A new element has been added to the surface.
Procedure OnComAddElement Variant   llElement
	Forward Send OnComAddElement llElement
	// Element.ShowCheckBox = True
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComImageSize to 16
	Send ComImages "gBJJgBAIDAAEg4ACEKAD/hz/EMNh8TIRNGwAjEZAEXjAojJAjMLjABAAgjUYkUnlUrlktl0vmExmUzmk1m03nE5nU7nkrQCAntBoVDolFo1HoM/ADAplLptImdMYFOqdSqlXq1QrVbrlGpVWsFNrNdnNjsk7pQAtNroFnt0sh8Yr9iulTuNxs1Eu8OiT/vsnsNVutXlk/oGGtVKxGLxWNtsZtN8iUYuNvy0Zvd+xNYwdwvl4p870GCqc8vOeuVttmp1knyOayWVy+WzN/ze1wOElenm+12WUz/Bv2/3UyyWrzeutux2GSyGP2dQ33C1ur3GD3M4zUNzHdlWjq/E3nGzVpjWv4HA7fRy/Tv2IrN8rPW6nZ3ve7mUlfu20Z8acvQyb+vY9jasYoDwMm+LytVBDqKG3z8O3Cb8P+mkAuY9cCQ2uL4KaxDKvkp8RNLEjqugnrwQo/UWPzFyeQw5sNLZFENrI4kOqU66pw8uzmOKvTqNqjULJvGL1JO48GtTGsbLdEL3scxLlyiw8dQeoUVxdLTtyKmUjwGlslRPJsnK1HbAKbKCrsQo8uQk/CeP44iaR/ATnTNPLvyxPU+z9P9AUDQVBowiofJXQ6Oo+kKMpIkjztE4TKn4P6JowfgPnwD5/nAjB8AOeAPo0eAA1IAFH07UhAIMpYAVIYFHqBUhwVjV1S1EtQAHxW65V0AZwAeuQAnwB5gAPYViEDVhwAHTQBkCjB4gOhwDmCyhH0sACAg=="
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element Check 2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComChecked of hoElement to OLEexChecked
			Set ComPictures of hoElement to "1,2"
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComHome
	Send ComEndUpdate
End_Procedure
73
We want to have option to start/end connectors at the middle of each side of the elements
Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComShowLinks to OLEexShowLinks
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>2" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>3" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
	Send Destroy to hoLinks
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
72
How can I determine the position the user clicks within the element's boundaries (Click event)

// Occurs when the user presses and then releases the left mouse button over the control.
Procedure OnComClick 
	Forward Send OnComClick 
	Variant e
	Get ComElementFromPoint -1 -1 to e
	Variant X
	Move -1 to X
	Variant Y
	Move -1 to Y
	Send ComPointToPosition X Y
	Showln  e X Y
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element 1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element 2" 128 64 to Nothing
	Send Destroy to hoElements
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
71
How can I determine the position the user clicks within the element's boundaries (MouseMove event)

// Occurs when the user moves the mouse.
Procedure OnComMouseMove Short   llButton Short   llShift OLE_XPOS_PIXELS   llX OLE_YPOS_PIXELS   llY
	Forward Send OnComMouseMove llButton llShift llX llY
	Variant e
	Get ComElementFromPoint llX llY to e
	Send ComPointToPosition llX llY
	Showln  e llX llY
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element 1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element 2" 128 64 to Nothing
	Send Destroy to hoElements
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
70
How can I convert the screen position (mouse) to surface position

// Occurs when the user moves the mouse.
Procedure OnComMouseMove Short   llButton Short   llShift OLE_XPOS_PIXELS   llX OLE_YPOS_PIXELS   llY
	Forward Send OnComMouseMove llButton llShift llX llY
	Showln "Point " llX llY
	Send ComPointToPosition llX llY
	Showln "Position " llX llY
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>2" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>3" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 1 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
	Send Destroy to hoLinks
	Send ComFitToClient
	Set ComAxisStyle to OLEexLinesSolid
	Set ComAxisColor to (RGB(128,128,128))
	Send ComEndUpdate
End_Procedure
69
Is is possible to show just the positive coordinates

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComCoord to (OLEexAllowPositiveOnly + OLEexCartesian)
	Set ComAxisColor to (RGB(128,128,128))
	Set ComAxisStyle to (OLEexLinesThick + OLEexLinesDot)
	Set ComShowLinks to OLEexShowLinks
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>2" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>3" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
	Send Destroy to hoLinks
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
68
Cartesian coordinates (positive coordinates are shown top-right to the origin)

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComCoord to OLEexCartesian
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>2" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>3" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 1 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
	Send Destroy to hoLinks
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
67
Default coordinates (positive coordinates are shown bottom-right to the origin)

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComCoord to OLEexDefCoord
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>2" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>3" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 1 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
	Send Destroy to hoLinks
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
66
Is it possible to customize the path of the links orthogonally similar with Microsoft Visio tool

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexOrthoArrange + OLEexMiddleControlPoint + OLEexControlPoint + OLEexEndControlPoint + OLEexStartControlPoint)
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>1" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>2" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>3" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 1 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComZoom to 200
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
65
Does your control supports OLE Drag and Drop
// Occurs when a source component is dropped onto a target component when the source component determines that a drop can occur.
Procedure OnComOLEDragDrop Variant   llData Integer   llEffect Short   llButton Short   llShift OLE_XPOS_PIXELS   llX OLE_YPOS_PIXELS   llY
	Forward Send OnComOLEDragDrop llData llEffect llButton llShift llX llY
	Showln llData
End_Procedure

// Occurs when the OLEDrag method is called.
Procedure OnComOLEStartDrag Variant   llData Integer   llAllowedEffects
	Forward Send OnComOLEStartDrag llData llAllowedEffects
	// Data.SetData("some data to drag")
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComOLEDropMode to OLEexOLEDropManual
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -250 -150 500 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 2
				Send Destroy to hoLanes
			Send Destroy to hoLane
			Variant voLane1
			Get ComLane of hoPool OLEexLaneVertical to voLane1
			Handle hoLane1
			Get Create (RefClass(cComLane)) to hoLane1
			Set pvComObject of hoLane1 to voLane1
				Variant voLanes1
				Get ComChildren of hoLane1 to voLanes1
				Handle hoLanes1
				Get Create (RefClass(cComLanes)) to hoLanes1
				Set pvComObject of hoLanes1 to voLanes1
					Set ComCount of hoLanes1 to 1
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
		Send Destroy to hoPool
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Click the Element wait for .5 second until + cursor is shown, to start <b>OLE Drag and Drop</b>" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComCaptionSingleLine of hoElement to False
			Set ComAutoSize of hoElement to False
			Set ComX of hoElement to -125
			Set ComY of hoElement to -105
			Set ComWidth of hoElement to 256
			Set ComHeight of hoElement to 56
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Click the Element wait for .5 second until + cursor is shown, to start <b>OLE Drag and Drop</b>" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComCaptionSingleLine of hoElement1 to False
			Set ComAutoSize of hoElement1 to False
			Set ComX of hoElement1 to -125
			Set ComWidth of hoElement1 to 256
			Set ComHeight of hoElement1 to 56
		Send Destroy to hoElement1
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
64
Is it possible to disable customizing the path of a specified link

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (|CI$ffffffe0 + OLEexOrthoArrange + OLEexMiddleControlPoint + OLEexControlPoint + OLEexEndControlPoint + OLEexStartControlPoint)
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComCustomPath of hoLink to "0.5,0.25,0.5,.75"
		Send Destroy to hoLink
Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
				Variant voLink1
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to voLink1
		Handle hoLink1
		Get Create (RefClass(cComLink)) to hoLink1
		Set pvComObject of hoLink1 to voLink1
			Set ComCustomPath of hoLink1 to "0.5,0.25,0.5,.75"
		Send Destroy to hoLink1
Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 1 to vTo2
			Send Destroy to hoElements6
				Variant voLink2
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to voLink2
		Handle hoLink2
		Get Create (RefClass(cComLink)) to hoLink2
		Set pvComObject of hoLink2 to voLink2
			Set ComShowLinkType of hoLink2 to OLEexLinkRound
			Set ComStartPos of hoLink2 to OLELeftAlignment
			Set ComColor of hoLink2 to (RGB(128,128,128))
			Set ComAllowControlPoint of hoLink2 to OLEexNoControlPoint
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Set ComZoom to 200
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
63
How do I let user customizes the link's path

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (|CI$ffffffe0 + OLEexOrthoArrange + OLEexMiddleControlPoint + OLEexControlPoint + OLEexEndControlPoint + OLEexStartControlPoint)
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 164 64 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 0 132 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComCustomPath of hoLink to "0.5,0.25,0.5,.75"
		Send Destroy to hoLink
Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 3 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 2 to vTo1
			Send Destroy to hoElements4
				Variant voLink1
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to voLink1
		Handle hoLink1
		Get Create (RefClass(cComLink)) to hoLink1
		Set pvComObject of hoLink1 to voLink1
			Set ComCustomPath of hoLink1 to "0.5,0.25,0.5,.75"
		Send Destroy to hoLink1
Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 1 to vTo2
			Send Destroy to hoElements6
				Variant voLink2
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to voLink2
		Handle hoLink2
		Get Create (RefClass(cComLink)) to hoLink2
		Set pvComObject of hoLink2 to voLink2
			Set ComShowLinkType of hoLink2 to OLEexLinkRound
			Set ComStartPos of hoLink2 to OLELeftAlignment
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Set ComZoom to 200
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
62
How can I generate a picture/image/graph from my diagram
Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Element D" Nothing Nothing to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComID of hoElement3 to "D"
		Send Destroy to hoElement3
		Variant voElement4
		Get ComAdd of hoElements "Element E" Nothing Nothing to voElement4
		Handle hoElement4
		Get Create (RefClass(cComElement)) to hoElement4
		Set pvComObject of hoElement4 to voElement4
			Set ComID of hoElement4 to "E"
		Send Destroy to hoElement4
		Variant voElement5
		Get ComAdd of hoElements "Element E" Nothing Nothing to voElement5
		Handle hoElement5
		Get Create (RefClass(cComElement)) to hoElement5
		Set pvComObject of hoElement5 to voElement5
			Set ComID of hoElement5 to "F"
		Send Destroy to hoElement5
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 "B" to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 "D" to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 "B" to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 "C" to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
		Variant vFrom4
			Variant voElements9
			Get ComElements to voElements9
			Handle hoElements9
			Get Create (RefClass(cComElements)) to hoElements9
			Set pvComObject of hoElements9 to voElements9
				Get ComItem of hoElements9 "A" to vFrom4
			Send Destroy to hoElements9
Variant vTo4
			Variant voElements10
			Get ComElements to voElements10
			Handle hoElements10
			Get Create (RefClass(cComElements)) to hoElements10
			Set pvComObject of hoElements10 to voElements10
				Get ComItem of hoElements10 "E" to vTo4
			Send Destroy to hoElements10
		Get ComAdd of hoLinks vFrom4 vTo4 Nothing to Nothing
		Variant vFrom5
			Variant voElements11
			Get ComElements to voElements11
			Handle hoElements11
			Get Create (RefClass(cComElements)) to hoElements11
			Set pvComObject of hoElements11 to voElements11
				Get ComItem of hoElements11 "A" to vFrom5
			Send Destroy to hoElements11
Variant vTo5
			Variant voElements12
			Get ComElements to voElements12
			Handle hoElements12
			Get Create (RefClass(cComElements)) to hoElements12
			Set pvComObject of hoElements12 to voElements12
				Get ComItem of hoElements12 "F" to vTo5
			Send Destroy to hoElements12
		Get ComAdd of hoLinks vFrom5 vTo5 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComDefArrange OLEexDefArrangeCompact to False
	Send ComArrange Nothing
	Variant var_CopyTo
	Get ComCopyTo "c:/temp/xtest.jpg" to var_CopyTo
	Showln "!!!check the file c:/temp/xtest.jpg!!!"
End_Procedure
61
How can I generate a picture/image/graph from my diagram
Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Element D" Nothing Nothing to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComID of hoElement3 to "D"
		Send Destroy to hoElement3
		Variant voElement4
		Get ComAdd of hoElements "Element E" Nothing Nothing to voElement4
		Handle hoElement4
		Get Create (RefClass(cComElement)) to hoElement4
		Set pvComObject of hoElement4 to voElement4
			Set ComID of hoElement4 to "E"
		Send Destroy to hoElement4
		Variant voElement5
		Get ComAdd of hoElements "Element E" Nothing Nothing to voElement5
		Handle hoElement5
		Get Create (RefClass(cComElement)) to hoElement5
		Set pvComObject of hoElement5 to voElement5
			Set ComID of hoElement5 to "F"
		Send Destroy to hoElement5
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 "B" to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 "D" to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 "B" to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 "C" to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
		Variant vFrom4
			Variant voElements9
			Get ComElements to voElements9
			Handle hoElements9
			Get Create (RefClass(cComElements)) to hoElements9
			Set pvComObject of hoElements9 to voElements9
				Get ComItem of hoElements9 "A" to vFrom4
			Send Destroy to hoElements9
Variant vTo4
			Variant voElements10
			Get ComElements to voElements10
			Handle hoElements10
			Get Create (RefClass(cComElements)) to hoElements10
			Set pvComObject of hoElements10 to voElements10
				Get ComItem of hoElements10 "E" to vTo4
			Send Destroy to hoElements10
		Get ComAdd of hoLinks vFrom4 vTo4 Nothing to Nothing
		Variant vFrom5
			Variant voElements11
			Get ComElements to voElements11
			Handle hoElements11
			Get Create (RefClass(cComElements)) to hoElements11
			Set pvComObject of hoElements11 to voElements11
				Get ComItem of hoElements11 "A" to vFrom5
			Send Destroy to hoElements11
Variant vTo5
			Variant voElements12
			Get ComElements to voElements12
			Handle hoElements12
			Get Create (RefClass(cComElements)) to hoElements12
			Set pvComObject of hoElements12 to voElements12
				Get ComItem of hoElements12 "F" to vTo5
			Send Destroy to hoElements12
		Get ComAdd of hoLinks vFrom5 vTo5 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComDefArrange OLEexDefArrangeCompact to False
	Send ComArrange Nothing
	Handle hoPrint
	Get Create (RefClass(cComPrint)) to hoPrint // Import the 'ExPrint 1.0 Control Library' library
		Set ComPrintExt of hoPrint to (pvComObject(Self))
		Get ComCopyTo of hoPrint "c:/temp/xtest.jpg" to Nothing
	Send Destroy to hoPrint
	Showln "!!!check the file c:/temp/xtest.jpg!!!"
End_Procedure
60
How can I print the component
Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 0 76 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Element <sha ;;0>C" -76 32 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComAutoSize of hoElement to False
			Set ComHeight of hoElement to 32
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element <sha ;;0>D" 76 32 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComAutoSize of hoElement1 to False
			Set ComHeight of hoElement1 to 32
		Send Destroy to hoElement1
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComStartPos of hoLink to OLECenterAlignment
			Set ComEndPos of hoLink to OLECenterAlignment
		Send Destroy to hoLink
Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 2 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 1 to vTo1
			Send Destroy to hoElements4
				Variant voLink1
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to voLink1
		Handle hoLink1
		Get Create (RefClass(cComLink)) to hoLink1
		Set pvComObject of hoLink1 to voLink1
			Set ComStartPos of hoLink1 to OLECenterAlignment
			Set ComEndPos of hoLink1 to OLECenterAlignment
		Send Destroy to hoLink1
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 4 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 4 to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 3 to vTo3
			Send Destroy to hoElements8
				Variant voLink2
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to voLink2
		Handle hoLink2
		Get Create (RefClass(cComLink)) to hoLink2
		Set pvComObject of hoLink2 to voLink2
			Set ComStartPos of hoLink2 to OLELeftAlignment
			Set ComEndPos of hoLink2 to OLERightAlignment
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Handle hoPrint
	Get Create (RefClass(cComPrint)) to hoPrint // Import the 'ExPrint 1.0 Control Library' library
		Set ComPrintExt of hoPrint to (pvComObject(Self))
		Send ComPreview of hoPrint
	Send Destroy to hoPrint
End_Procedure
59
How can I show direct-links

Procedure OnCreate
	Forward Send OnCreate
	Set ComShowLinksType to OLEexLinkDirect
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" 128 64 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" 128 -64 to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
	Send Destroy to hoLinks
End_Procedure
58
How can I show straight-links

Procedure OnCreate
	Forward Send OnCreate
	Set ComShowLinksType to OLEexLinkStraight
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" 128 64 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" 128 -64 to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
	Send Destroy to hoLinks
End_Procedure
57
How can I show round-links

Procedure OnCreate
	Forward Send OnCreate
	Set ComShowLinksType to OLEexLinkRound
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" 128 64 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" 128 -64 to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
	Send Destroy to hoLinks
End_Procedure
56
I've tried to insert a "<br>" in the Caption property text and it just ignores it

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "caption" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComCaptionSingleLine of hoElement to False
			Set ComCaption of hoElement to "first caption<br>second caption<br>third caption"
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
55
How do I align the extra-caption

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "caption" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComCaptionAlign of hoElement to OLEexTopLeft
			Set ComAutoSize of hoElement to False
			Set ComWidth of hoElement to 128
			Set ComHeight of hoElement to 64
			Set ComExtraCaption of hoElement to "extra-caption"
			Set ComExtraCaptionAlign of hoElement to OLEexBottomRight
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
54
How can I add an extra caption

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "caption" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComExtraCaption of hoElement to "extra-caption"
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
53
I am using the reserve-neighbors feature, the question is how to shift left/right the neighbors instead of up/down
Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowMoveNeighbors to OLEexMoveNeighborsHorizontally
	Set ComDefArrange OLEexDefArrangeDir to 1
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B ( move it )" 16 32 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>C" 128 0 to Nothing
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
52
I am using the reserve-neighbors feature, the question is if possible to specify the distance between neighbors
Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowMoveNeighbors to OLEexMoveNeighborsVertically
	Set ComDefArrange OLEexDefArrangeDX to 0
	Set ComDefArrange OLEexDefArrangeDY to 0
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B ( move it )" 0 32 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>C" 0 64 to Nothing
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
51
How do I enable the reserve-neighbors feature
Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowMoveNeighbors to OLEexMoveNeighborsVertically
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B ( move it )" 0 32 to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>C" 0 64 to Nothing
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
50
I've noticed that recently, the elements get compacted once the Arrange method is performed. How can I prevent that

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Element D" Nothing Nothing to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComID of hoElement3 to "D"
		Send Destroy to hoElement3
		Variant voElement4
		Get ComAdd of hoElements "Element E" Nothing Nothing to voElement4
		Handle hoElement4
		Get Create (RefClass(cComElement)) to hoElement4
		Set pvComObject of hoElement4 to voElement4
			Set ComID of hoElement4 to "E"
		Send Destroy to hoElement4
		Variant voElement5
		Get ComAdd of hoElements "Element E" Nothing Nothing to voElement5
		Handle hoElement5
		Get Create (RefClass(cComElement)) to hoElement5
		Set pvComObject of hoElement5 to voElement5
			Set ComID of hoElement5 to "F"
		Send Destroy to hoElement5
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 "B" to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 "D" to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 "B" to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 "C" to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
		Variant vFrom4
			Variant voElements9
			Get ComElements to voElements9
			Handle hoElements9
			Get Create (RefClass(cComElements)) to hoElements9
			Set pvComObject of hoElements9 to voElements9
				Get ComItem of hoElements9 "A" to vFrom4
			Send Destroy to hoElements9
Variant vTo4
			Variant voElements10
			Get ComElements to voElements10
			Handle hoElements10
			Get Create (RefClass(cComElements)) to hoElements10
			Set pvComObject of hoElements10 to voElements10
				Get ComItem of hoElements10 "E" to vTo4
			Send Destroy to hoElements10
		Get ComAdd of hoLinks vFrom4 vTo4 Nothing to Nothing
		Variant vFrom5
			Variant voElements11
			Get ComElements to voElements11
			Handle hoElements11
			Get Create (RefClass(cComElements)) to hoElements11
			Set pvComObject of hoElements11 to voElements11
				Get ComItem of hoElements11 "A" to vFrom5
			Send Destroy to hoElements11
Variant vTo5
			Variant voElements12
			Get ComElements to voElements12
			Handle hoElements12
			Get Create (RefClass(cComElements)) to hoElements12
			Set pvComObject of hoElements12 to voElements12
				Get ComItem of hoElements12 "F" to vTo5
			Send Destroy to hoElements12
		Get ComAdd of hoLinks vFrom5 vTo5 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComDefArrange OLEexDefArrangeCompact to False
	Send ComArrange Nothing
End_Procedure
49
How can I move an element to a specified lane/phase/pool

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComDefPoolHeaderCaptionFormat True to "<fgcolor 808080>Faza <off -4><b><font ;6>%i"
	Set ComDefPoolHeaderCaptionFormat False to "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -100 -100 250 180 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
				Send Destroy to hoLanes
			Send Destroy to hoLane
			Variant voLane1
			Get ComLane of hoPool OLEexLaneVertical to voLane1
			Handle hoLane1
			Get Create (RefClass(cComLane)) to hoLane1
			Set pvComObject of hoLane1 to voLane1
				Variant voLanes1
				Get ComChildren of hoLane1 to voLanes1
				Handle hoLanes1
				Get Create (RefClass(cComLanes)) to hoLanes1
				Set pvComObject of hoLanes1 to voLanes1
					Set ComCount of hoLanes1 to 3
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
			Variant voLane2
			Get ComLane of hoPool OLEexLaneVertical to voLane2
			Handle hoLane2
			Get Create (RefClass(cComLane)) to hoLane2
			Set pvComObject of hoLane2 to voLane2
				Variant voLanes2
				Get ComChildren of hoLane2 to voLanes2
				Handle hoLanes2
				Get Create (RefClass(cComLanes)) to hoLanes2
				Set pvComObject of hoLanes2 to voLanes2
					Variant voLane3
					Get ComItem of hoLanes2 1 to voLane3
					Handle hoLane3
					Get Create (RefClass(cComLane)) to hoLane3
					Set pvComObject of hoLane3 to voLane3
						Variant voHeaderLane
						Get ComHeader of hoLane3 to voHeaderLane
						Handle hoHeaderLane
						Get Create (RefClass(cComHeaderLane)) to hoHeaderLane
						Set pvComObject of hoHeaderLane to voHeaderLane
							Set ComCaption of hoHeaderLane to "<fgcolor FF0000><b>NEW"
						Send Destroy to hoHeaderLane
					Send Destroy to hoLane3
				Send Destroy to hoLanes2
			Send Destroy to hoLane2
		Send Destroy to hoPool
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "element 1" 200 200 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComLaneID of hoElement True to "0:H.0,0:V.0"
		Send Destroy to hoElement
	Send Destroy to hoElements
	Variant voElements1
	Get ComElements to voElements1
	Handle hoElements1
	Get Create (RefClass(cComElements)) to hoElements1
	Set pvComObject of hoElements1 to voElements1
		Variant voElement1
		Get ComAdd of hoElements1 "element 2" 200 200 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComLaneID of hoElement1 True to "0:H.2,0:V.2"
		Send Destroy to hoElement1
	Send Destroy to hoElements1
	Send ComEndUpdate
End_Procedure
48
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-2)

// A new link has been added to the links collection.
Procedure OnComAddLink Variant   llLink
	Forward Send OnComAddLink llLink
	Move to Link
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 48 48 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
End_Procedure
47
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-1)

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 48 48 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComStartPos of hoLink to OLEDownAlignment
			Set ComEndPos of hoLink to OLEUpAlignment
		Send Destroy to hoLink
	Send Destroy to hoLinks
End_Procedure
46
How do I enable the cross link support ( mixed )

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 0 76 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Element <sha ;;0>C" -76 32 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComAutoSize of hoElement to False
			Set ComHeight of hoElement to 32
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element <sha ;;0>D" 76 32 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComAutoSize of hoElement1 to False
			Set ComHeight of hoElement1 to 32
		Send Destroy to hoElement1
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComStartPos of hoLink to OLECenterAlignment
			Set ComEndPos of hoLink to OLECenterAlignment
		Send Destroy to hoLink
Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 2 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 1 to vTo1
			Send Destroy to hoElements4
				Variant voLink1
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to voLink1
		Handle hoLink1
		Get Create (RefClass(cComLink)) to hoLink1
		Set pvComObject of hoLink1 to voLink1
			Set ComStartPos of hoLink1 to OLECenterAlignment
			Set ComEndPos of hoLink1 to OLECenterAlignment
		Send Destroy to hoLink1
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 4 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 4 to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 3 to vTo3
			Send Destroy to hoElements8
				Variant voLink2
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to voLink2
		Handle hoLink2
		Get Create (RefClass(cComLink)) to hoLink2
		Set pvComObject of hoLink2 to voLink2
			Set ComStartPos of hoLink2 to OLELeftAlignment
			Set ComEndPos of hoLink2 to OLERightAlignment
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Set ComShowLinks to (OLEexShowCrossLinksMixt + OLEexShowExtendedLinks)
End_Procedure
45
How do I enable the cross link support ( triangular )

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 0 76 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Element <sha ;;0>C" -76 32 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComAutoSize of hoElement to False
			Set ComHeight of hoElement to 32
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element <sha ;;0>D" 76 32 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComAutoSize of hoElement1 to False
			Set ComHeight of hoElement1 to 32
		Send Destroy to hoElement1
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComStartPos of hoLink to OLECenterAlignment
			Set ComEndPos of hoLink to OLECenterAlignment
		Send Destroy to hoLink
Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 2 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 1 to vTo1
			Send Destroy to hoElements4
				Variant voLink1
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to voLink1
		Handle hoLink1
		Get Create (RefClass(cComLink)) to hoLink1
		Set pvComObject of hoLink1 to voLink1
			Set ComStartPos of hoLink1 to OLECenterAlignment
			Set ComEndPos of hoLink1 to OLECenterAlignment
		Send Destroy to hoLink1
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 4 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 4 to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 3 to vTo3
			Send Destroy to hoElements8
				Variant voLink2
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to voLink2
		Handle hoLink2
		Get Create (RefClass(cComLink)) to hoLink2
		Set pvComObject of hoLink2 to voLink2
			Set ComStartPos of hoLink2 to OLELeftAlignment
			Set ComEndPos of hoLink2 to OLERightAlignment
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Set ComShowLinks to (OLEexShowCrossLinksTriangle + OLEexShowExtendedLinks)
End_Procedure
44
How do I enable the cross link support ( rectangular )

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 0 76 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Element <sha ;;0>C" -76 32 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComAutoSize of hoElement to False
			Set ComHeight of hoElement to 32
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element <sha ;;0>D" 76 32 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComAutoSize of hoElement1 to False
			Set ComHeight of hoElement1 to 32
		Send Destroy to hoElement1
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComStartPos of hoLink to OLECenterAlignment
			Set ComEndPos of hoLink to OLECenterAlignment
		Send Destroy to hoLink
Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 2 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 1 to vTo1
			Send Destroy to hoElements4
				Variant voLink1
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to voLink1
		Handle hoLink1
		Get Create (RefClass(cComLink)) to hoLink1
		Set pvComObject of hoLink1 to voLink1
			Set ComStartPos of hoLink1 to OLECenterAlignment
			Set ComEndPos of hoLink1 to OLECenterAlignment
		Send Destroy to hoLink1
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 3 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 4 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 4 to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 3 to vTo3
			Send Destroy to hoElements8
				Variant voLink2
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to voLink2
		Handle hoLink2
		Get Create (RefClass(cComLink)) to hoLink2
		Set pvComObject of hoLink2 to voLink2
			Set ComStartPos of hoLink2 to OLELeftAlignment
			Set ComEndPos of hoLink2 to OLERightAlignment
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Set ComShowLinks to (OLEexShowCrossLinksRect + OLEexShowExtendedLinks)
End_Procedure
43
How do I show a link frmo bottom to top, or reverse, not from left to right

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 0 64 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
				Variant voLink
		Get ComAdd of hoLinks vFrom vTo Nothing to voLink
		Handle hoLink
		Get Create (RefClass(cComLink)) to hoLink
		Set pvComObject of hoLink to voLink
			Set ComStartPos of hoLink to OLECenterAlignment
			Set ComEndPos of hoLink to OLECenterAlignment
		Send Destroy to hoLink
	Send Destroy to hoLinks
End_Procedure
42
Is it possible to control the links, so that they are always centered

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Element D" Nothing Nothing to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComID of hoElement3 to "D"
		Send Destroy to hoElement3
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 "B" to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 "D" to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 "B" to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 "C" to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComShowLinks to OLEexShowLinks
	Set ComDefArrange OLEexDefArrangeDir to 1
	Send ComArrange Nothing
End_Procedure
41
What options to align the elements do I have if I use Arrange method

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComShowGridLines to True
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant v
		Variant voElement
		Get ComAdd of hoElements "Top Alignment" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Get ComID of hoElement to v
		Send Destroy to hoElement
		Variant h1
		Move v to h1
		Get ComAdd of hoElements "Element" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element" Nothing Nothing to Nothing
		Variant v1
		Variant voElement1
		Get ComAdd of hoElements "Center Alignment" 96 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Get ComID of hoElement1 to v1
		Send Destroy to hoElement1
		Variant h2
		Move v1 to h2
		Get ComAdd of hoElements "Element" 96 to Nothing
		Get ComAdd of hoElements "Element" 96 to Nothing
		Get ComAdd of hoElements "Element" 96 to Nothing
		Variant v2
		Variant voElement2
		Get ComAdd of hoElements "Bottom Alignment" 178 to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Get ComID of hoElement2 to v2
		Send Destroy to hoElement2
		Variant h3
		Move v2 to h3
		Get ComAdd of hoElements "Element" 192 to Nothing
		Get ComAdd of hoElements "Element" 192 to Nothing
		Get ComAdd of hoElements "Element" 192 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 1 to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 3 to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 2 to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 4 to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 2 to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 3 to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
		Variant vFrom4
			Variant voElements9
			Get ComElements to voElements9
			Handle hoElements9
			Get Create (RefClass(cComElements)) to hoElements9
			Set pvComObject of hoElements9 to voElements9
				Get ComItem of hoElements9 5 to vFrom4
			Send Destroy to hoElements9
Variant vTo4
			Variant voElements10
			Get ComElements to voElements10
			Handle hoElements10
			Get Create (RefClass(cComElements)) to hoElements10
			Set pvComObject of hoElements10 to voElements10
				Get ComItem of hoElements10 6 to vTo4
			Send Destroy to hoElements10
		Get ComAdd of hoLinks vFrom4 vTo4 Nothing to Nothing
		Variant vFrom5
			Variant voElements11
			Get ComElements to voElements11
			Handle hoElements11
			Get Create (RefClass(cComElements)) to hoElements11
			Set pvComObject of hoElements11 to voElements11
				Get ComItem of hoElements11 5 to vFrom5
			Send Destroy to hoElements11
Variant vTo5
			Variant voElements12
			Get ComElements to voElements12
			Handle hoElements12
			Get Create (RefClass(cComElements)) to hoElements12
			Set pvComObject of hoElements12 to voElements12
				Get ComItem of hoElements12 7 to vTo5
			Send Destroy to hoElements12
		Get ComAdd of hoLinks vFrom5 vTo5 Nothing to Nothing
		Variant vFrom6
			Variant voElements13
			Get ComElements to voElements13
			Handle hoElements13
			Get Create (RefClass(cComElements)) to hoElements13
			Set pvComObject of hoElements13 to voElements13
				Get ComItem of hoElements13 6 to vFrom6
			Send Destroy to hoElements13
Variant vTo6
			Variant voElements14
			Get ComElements to voElements14
			Handle hoElements14
			Get Create (RefClass(cComElements)) to hoElements14
			Set pvComObject of hoElements14 to voElements14
				Get ComItem of hoElements14 8 to vTo6
			Send Destroy to hoElements14
		Get ComAdd of hoLinks vFrom6 vTo6 Nothing to Nothing
		Variant vFrom7
			Variant voElements15
			Get ComElements to voElements15
			Handle hoElements15
			Get Create (RefClass(cComElements)) to hoElements15
			Set pvComObject of hoElements15 to voElements15
				Get ComItem of hoElements15 6 to vFrom7
			Send Destroy to hoElements15
Variant vTo7
			Variant voElements16
			Get ComElements to voElements16
			Handle hoElements16
			Get Create (RefClass(cComElements)) to hoElements16
			Set pvComObject of hoElements16 to voElements16
				Get ComItem of hoElements16 7 to vTo7
			Send Destroy to hoElements16
		Get ComAdd of hoLinks vFrom7 vTo7 Nothing to Nothing
		Variant vFrom8
			Variant voElements17
			Get ComElements to voElements17
			Handle hoElements17
			Get Create (RefClass(cComElements)) to hoElements17
			Set pvComObject of hoElements17 to voElements17
				Get ComItem of hoElements17 9 to vFrom8
			Send Destroy to hoElements17
Variant vTo8
			Variant voElements18
			Get ComElements to voElements18
			Handle hoElements18
			Get Create (RefClass(cComElements)) to hoElements18
			Set pvComObject of hoElements18 to voElements18
				Get ComItem of hoElements18 10 to vTo8
			Send Destroy to hoElements18
		Get ComAdd of hoLinks vFrom8 vTo8 Nothing to Nothing
		Variant vFrom9
			Variant voElements19
			Get ComElements to voElements19
			Handle hoElements19
			Get Create (RefClass(cComElements)) to hoElements19
			Set pvComObject of hoElements19 to voElements19
				Get ComItem of hoElements19 9 to vFrom9
			Send Destroy to hoElements19
Variant vTo9
			Variant voElements20
			Get ComElements to voElements20
			Handle hoElements20
			Get Create (RefClass(cComElements)) to hoElements20
			Set pvComObject of hoElements20 to voElements20
				Get ComItem of hoElements20 11 to vTo9
			Send Destroy to hoElements20
		Get ComAdd of hoLinks vFrom9 vTo9 Nothing to Nothing
		Variant vFrom10
			Variant voElements21
			Get ComElements to voElements21
			Handle hoElements21
			Get Create (RefClass(cComElements)) to hoElements21
			Set pvComObject of hoElements21 to voElements21
				Get ComItem of hoElements21 10 to vFrom10
			Send Destroy to hoElements21
Variant vTo10
			Variant voElements22
			Get ComElements to voElements22
			Handle hoElements22
			Get Create (RefClass(cComElements)) to hoElements22
			Set pvComObject of hoElements22 to voElements22
				Get ComItem of hoElements22 12 to vTo10
			Send Destroy to hoElements22
		Get ComAdd of hoLinks vFrom10 vTo10 Nothing to Nothing
		Variant vFrom11
			Variant voElements23
			Get ComElements to voElements23
			Handle hoElements23
			Get Create (RefClass(cComElements)) to hoElements23
			Set pvComObject of hoElements23 to voElements23
				Get ComItem of hoElements23 10 to vFrom11
			Send Destroy to hoElements23
Variant vTo11
			Variant voElements24
			Get ComElements to voElements24
			Handle hoElements24
			Get Create (RefClass(cComElements)) to hoElements24
			Set pvComObject of hoElements24 to voElements24
				Get ComItem of hoElements24 11 to vTo11
			Send Destroy to hoElements24
		Get ComAdd of hoLinks vFrom11 vTo11 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComDefArrange OLEexDefArrangeAlign to 0
	Send ComArrange h1
	Set ComDefArrange OLEexDefArrangeAlign to 1
	Send ComArrange h2
	Set ComDefArrange OLEexDefArrangeAlign to 2
	Send ComArrange h3
	Send ComEndUpdate
End_Procedure
40
Is there an auto-arrange feature that will display the flow-chart centered and zoomed correctly after we are finished building it

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Element D" Nothing Nothing to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComID of hoElement3 to "D"
		Send Destroy to hoElement3
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 "B" to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 "D" to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 "B" to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 "C" to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
	Send Destroy to hoLinks
	Send ComArrange Nothing
End_Procedure
39
Is it possible to change the distance between elements, when calling the Arrange method

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Element D" Nothing Nothing to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComID of hoElement3 to "D"
		Send Destroy to hoElement3
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 "B" to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 "D" to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 "B" to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 "C" to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComDefArrange OLEexDefArrangeDX to 0
	Set ComDefArrange OLEexDefArrangeDY to 0
	Send ComArrange Nothing
End_Procedure
38
How do I organize vertically the elements

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element A" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "A"
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Element B" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "B"
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Element C" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "C"
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Element D" Nothing Nothing to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComID of hoElement3 to "D"
		Send Destroy to hoElement3
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 "A" to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 "B" to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
		Variant vFrom1
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "A" to vFrom1
			Send Destroy to hoElements3
Variant vTo1
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "C" to vTo1
			Send Destroy to hoElements4
		Get ComAdd of hoLinks vFrom1 vTo1 Nothing to Nothing
		Variant vFrom2
			Variant voElements5
			Get ComElements to voElements5
			Handle hoElements5
			Get Create (RefClass(cComElements)) to hoElements5
			Set pvComObject of hoElements5 to voElements5
				Get ComItem of hoElements5 "B" to vFrom2
			Send Destroy to hoElements5
Variant vTo2
			Variant voElements6
			Get ComElements to voElements6
			Handle hoElements6
			Get Create (RefClass(cComElements)) to hoElements6
			Set pvComObject of hoElements6 to voElements6
				Get ComItem of hoElements6 "D" to vTo2
			Send Destroy to hoElements6
		Get ComAdd of hoLinks vFrom2 vTo2 Nothing to Nothing
		Variant vFrom3
			Variant voElements7
			Get ComElements to voElements7
			Handle hoElements7
			Get Create (RefClass(cComElements)) to hoElements7
			Set pvComObject of hoElements7 to voElements7
				Get ComItem of hoElements7 "B" to vFrom3
			Send Destroy to hoElements7
Variant vTo3
			Variant voElements8
			Get ComElements to voElements8
			Handle hoElements8
			Get Create (RefClass(cComElements)) to hoElements8
			Set pvComObject of hoElements8 to voElements8
				Get ComItem of hoElements8 "C" to vTo3
			Send Destroy to hoElements8
		Get ComAdd of hoLinks vFrom3 vTo3 Nothing to Nothing
	Send Destroy to hoLinks
	Set ComShowLinksType to OLEexLinkStraight
	Set ComDefArrange OLEexDefArrangeDir to 1
	Send ComArrange Nothing
End_Procedure
37
How can I add programatically a link

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 96 24 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
End_Procedure
36
How do I get the link from the cursor
// Occurs when the user moves the mouse.
Procedure OnComMouseMove Short   llButton Short   llShift OLE_XPOS_PIXELS   llX OLE_YPOS_PIXELS   llY
	Forward Send OnComMouseMove llButton llShift llX llY
	Variant l
	Get ComLinkFromPoint -1 -1 to l
	Showln l
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element <sha ;;0>A" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Element <sha ;;0>B" 96 24 to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 2 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
End_Procedure
35
Is there a way to create a link which has the same start and end element

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element" Nothing Nothing to Nothing
	Send Destroy to hoElements
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
		Variant vFrom
			Variant voElements1
			Get ComElements to voElements1
			Handle hoElements1
			Get Create (RefClass(cComElements)) to hoElements1
			Set pvComObject of hoElements1 to voElements1
				Get ComItem of hoElements1 1 to vFrom
			Send Destroy to hoElements1
Variant vTo
			Variant voElements2
			Get ComElements to voElements2
			Handle hoElements2
			Get Create (RefClass(cComElements)) to hoElements2
			Set pvComObject of hoElements2 to voElements2
				Get ComItem of hoElements2 1 to vTo
			Send Destroy to hoElements2
		Get ComAdd of hoLinks vFrom vTo Nothing to Nothing
	Send Destroy to hoLinks
End_Procedure
34
How can I show the pool's caption not-rotated or mirrored

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowDesignHeader to OLEexDesignHeaderSingle
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -150 -150 300 150 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderCaptionSupportRotate of hoPool to False
			Set ComHeaderSize of hoPool OLEexHeaderLeft to 48
			Set ComHeaderSize of hoPool OLEexHeaderRight to 48
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
33
How can I prevent creating sub-lanes or sub-phases

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowDesignHeader to OLEexDesignHeaderSingle
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -150 -150 300 150 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderSize of hoPool OLEexHeaderLeft to 32
			Set ComHeaderSize of hoPool OLEexHeaderRight to 32
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
32
How do I show a complete frame/border around the header

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -150 -150 300 150 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderSize of hoPool OLEexHeaderTop to 32
			Set ComHeaderSize of hoPool OLEexHeaderBottom to 32
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
					Variant voLane1
					Get ComItem of hoLanes 1 to voLane1
					Handle hoLane1
					Get Create (RefClass(cComLane)) to hoLane1
					Set pvComObject of hoLane1 to voLane1
						Variant voHeaderLane
						Get ComHeader of hoLane1 to voHeaderLane
						Handle hoHeaderLane
						Get Create (RefClass(cComHeaderLane)) to hoHeaderLane
						Set pvComObject of hoHeaderLane to voHeaderLane
							Variant voPattern
							Get ComPattern of hoHeaderLane to voPattern
							Handle hoPattern
							Get Create (RefClass(cComPattern)) to hoPattern
							Set pvComObject of hoPattern to voPattern
								Set ComType of hoPattern to OLEexPatternFrameThick
							Send Destroy to hoPattern
						Send Destroy to hoHeaderLane
					Send Destroy to hoLane1
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
31
How do I show a complete frame/border around the lane

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -150 -150 300 150 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderSize of hoPool OLEexHeaderTop to 32
			Set ComHeaderSize of hoPool OLEexHeaderBottom to 32
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
					Variant voLane1
					Get ComItem of hoLanes 1 to voLane1
					Handle hoLane1
					Get Create (RefClass(cComLane)) to hoLane1
					Set pvComObject of hoLane1 to voLane1
						Variant voPattern
						Get ComPattern of hoLane1 to voPattern
						Handle hoPattern
						Get Create (RefClass(cComPattern)) to hoPattern
						Set pvComObject of hoPattern to voPattern
							Set ComType of hoPattern to OLEexPatternFrameThick
						Send Destroy to hoPattern
					Send Destroy to hoLane1
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
30
How can I define sub-lanes

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -150 -150 300 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderSize of hoPool OLEexHeaderTop to 32
			Set ComHeaderSize of hoPool OLEexHeaderBottom to 32
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
					Variant voLane1
					Get ComItem of hoLanes 1 to voLane1
					Handle hoLane1
					Get Create (RefClass(cComLane)) to hoLane1
					Set pvComObject of hoLane1 to voLane1
						Variant voLanes1
						Get ComChildren of hoLane1 to voLanes1
						Handle hoLanes1
						Get Create (RefClass(cComLanes)) to hoLanes1
						Set pvComObject of hoLanes1 to voLanes1
							Set ComCount of hoLanes1 to 2
						Send Destroy to hoLanes1
					Send Destroy to hoLane1
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
29
How can I add default lanes when the user creates a new pool
// A new pool has been added to the surface.
Procedure OnComAddPool Variant   llPool
	Forward Send OnComAddPool llPool
	// Pool.HeaderSize(1) = 24
	// Pool.HeaderVisible(0) = False
	// Pool.HeaderVisible(1) = True
	// Pool.HeaderVisible(2) = False
	// Pool.HeaderVisible(3) = False
	// Pool.Lane(1).Children.Count = 2
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Get ComAdd of hoPools -100 -100 250 250 to Nothing
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
28
How do I prevent showing headers when the user creates new pools

// A new pool has been added to the surface.
Procedure OnComAddPool Variant   llPool
	Forward Send OnComAddPool llPool
	Move to Pool
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -100 -100 250 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
27
How can I display icons on headers

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Send ComImages "gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA="
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -100 -100 250 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderVisible of hoPool OLEexHeaderLeft to False
			Set ComHeaderVisible of hoPool OLEexHeaderRight to False
			Set ComHeaderVisible of hoPool OLEexHeaderBottom to False
			Set ComHeaderSize of hoPool OLEexHeaderTop to 24
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
					Variant voLane1
					Get ComItem of hoLanes 0 to voLane1
					Handle hoLane1
					Get Create (RefClass(cComLane)) to hoLane1
					Set pvComObject of hoLane1 to voLane1
						Variant voHeaderLane
						Get ComHeader of hoLane1 to voHeaderLane
						Handle hoHeaderLane
						Get Create (RefClass(cComHeaderLane)) to hoHeaderLane
						Set pvComObject of hoHeaderLane to voHeaderLane
							Set ComCaption of hoHeaderLane to "<img>1</img> A"
						Send Destroy to hoHeaderLane
					Send Destroy to hoLane1
					Variant voLane2
					Get ComItem of hoLanes 1 to voLane2
					Handle hoLane2
					Get Create (RefClass(cComLane)) to hoLane2
					Set pvComObject of hoLane2 to voLane2
						Variant voHeaderLane1
						Get ComHeader of hoLane2 to voHeaderLane1
						Handle hoHeaderLane1
						Get Create (RefClass(cComHeaderLane)) to hoHeaderLane1
						Set pvComObject of hoHeaderLane1 to voHeaderLane1
							Set ComCaption of hoHeaderLane1 to "<img>2</img> B"
						Send Destroy to hoHeaderLane1
					Send Destroy to hoLane2
					Variant voLane3
					Get ComItem of hoLanes 2 to voLane3
					Handle hoLane3
					Get Create (RefClass(cComLane)) to hoLane3
					Set pvComObject of hoLane3 to voLane3
						Variant voHeaderLane2
						Get ComHeader of hoLane3 to voHeaderLane2
						Handle hoHeaderLane2
						Get Create (RefClass(cComHeaderLane)) to hoHeaderLane2
						Set pvComObject of hoHeaderLane2 to voHeaderLane2
							Set ComCaption of hoHeaderLane2 to "<img>3</img> C"
						Send Destroy to hoHeaderLane2
					Send Destroy to hoLane3
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
26
How do I change the Lane and Phase strings being displayed on the lanes

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComDefPoolHeaderCaptionFormat True to "<fgcolor 808080>Faza <off -4><b><font ;6>%i"
	Set ComDefPoolHeaderCaptionFormat False to "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -100 -100 250 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
				Send Destroy to hoLanes
			Send Destroy to hoLane
			Variant voLane1
			Get ComLane of hoPool OLEexLaneVertical to voLane1
			Handle hoLane1
			Get Create (RefClass(cComLane)) to hoLane1
			Set pvComObject of hoLane1 to voLane1
				Variant voLanes1
				Get ComChildren of hoLane1 to voLanes1
				Handle hoLanes1
				Get Create (RefClass(cComLanes)) to hoLanes1
				Set pvComObject of hoLanes1 to voLanes1
					Set ComCount of hoLanes1 to 3
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
			Variant voLane2
			Get ComLane of hoPool OLEexLaneVertical to voLane2
			Handle hoLane2
			Get Create (RefClass(cComLane)) to hoLane2
			Set pvComObject of hoLane2 to voLane2
				Variant voLanes2
				Get ComChildren of hoLane2 to voLanes2
				Handle hoLanes2
				Get Create (RefClass(cComLanes)) to hoLanes2
				Set pvComObject of hoLanes2 to voLanes2
					Variant voLane3
					Get ComItem of hoLanes2 1 to voLane3
					Handle hoLane3
					Get Create (RefClass(cComLane)) to hoLane3
					Set pvComObject of hoLane3 to voLane3
						Variant voHeaderLane
						Get ComHeader of hoLane3 to voHeaderLane
						Handle hoHeaderLane
						Get Create (RefClass(cComHeaderLane)) to hoHeaderLane
						Set pvComObject of hoHeaderLane to voHeaderLane
							Set ComCaption of hoHeaderLane to "<fgcolor FF0000><b>NEW"
						Send Destroy to hoHeaderLane
					Send Destroy to hoLane3
				Send Destroy to hoLanes2
			Send Destroy to hoLane2
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
25
How can I enlarge the node while AutoSize property is True (method 2)

Procedure OnCreate
	Forward Send OnCreate
	Set ComBackground OLEexElementBackColor to (RGB(255,255,255))
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element" 0 0 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Variant voElement1
			Get ComCopy of hoElement Nothing Nothing to voElement1
			Handle hoElement1
			Get Create (RefClass(cComElement)) to hoElement1
			Set pvComObject of hoElement1 to voElement1
				Set ComCaption of hoElement1 to "Enlarged Element"
				Set ComInflateSize of hoElement1 to 16
			Send Destroy to hoElement1
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
24
How can I enlarge the node while AutoSize property is True (method 1)

Procedure OnCreate
	Forward Send OnCreate
	Set ComBackground OLEexElementBackColor to (RGB(255,255,255))
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element" 0 0 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Variant voElement1
			Get ComCopy of hoElement Nothing Nothing to voElement1
			Handle hoElement1
			Get Create (RefClass(cComElement)) to hoElement1
			Set pvComObject of hoElement1 to voElement1
				Set ComCaption of hoElement1 to "Enlarged Element"
				Set ComPadding of hoElement1 OLEexPaddingAll to 16
			Send Destroy to hoElement1
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
23
How can I get the lane of the element

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -150 -150 500 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Send ComCenterOnLane of hoElement False
			Variant lane
			Get ComLaneID of hoElement False to lane
			Variant v
				Variant voLane1
				Get ComLaneByID lane to voLane1
				Handle hoLane1
				Get Create (RefClass(cComLane)) to hoLane1
				Set pvComObject of hoLane1 to voLane1
					Variant voHeaderLane
					Get ComHeader of hoLane1 to voHeaderLane
					Handle hoHeaderLane
					Get Create (RefClass(cComHeaderLane)) to hoHeaderLane
					Set pvComObject of hoHeaderLane to voHeaderLane
						Get ComCaption of hoHeaderLane to v
					Send Destroy to hoHeaderLane
				Send Destroy to hoLane1
			Showln v
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
22
How can I define a different shape for elements

// A new element has been added to the surface.
Procedure OnComAddElement Variant   llElement
	Forward Send OnComAddElement llElement
	Move to Element
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voAppearance
	Get ComVisualAppearance to voAppearance
	Handle hoAppearance
	Get Create (RefClass(cComAppearance)) to hoAppearance
	Set pvComObject of hoAppearance to voAppearance
		Get ComAdd of hoAppearance 1 "gBFLBCJwBAEHhEJAAChABAQDg6AADACAxRDQNABQKAAzQFAYahuHKGAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQwDiAUIjIK8IhkGIcZAGIBJCjWGodQLOEgwHIERQjEyUJAGGYqEjaO41SpAdI0PCxUScACnDQiegJRgmQ4cTJSchSAKENx1JaeYReewwAqNd5TRwNIiydZUIhqGC1YRte4ZWiCWoJVzSVDLfbgAT4X60IIlCi5Mi6MIgDZJFDUNLUdRBMKNJ7qagaWoWOaQRbmAQQTRYLQ/TiEXZDQRAAyLJIWVRQWTAAKVbw1LiEcznGCcejzIIDaZpOh4DplWzTOgALjta4IRpvNwAbIAF4gBqsLyXXLcdQyORMiwbxZgSDhgnQbJFC6F5JhECA8CADwIgMeQnmoQJlh0eAfGcXYZjwccOHiWx/moAJ6jed4DC2dJnnmQRxBcKABBoWAcHULZLHyV4mmGOx0FmdpZAMAgQhEQBpBiRxBlQcgZFUdAMEYAxQDECBNgaUYglkCQKBGZANk0QgBgQXAQgcGI0FwJAHA6WI+DGDAjCiVg0g2Yw4mYNg7E0eJ1H+DpkAiYhBg6JApBYRMvDkJhGhKJIImEA4QledZ8H+FJlEEQhWBAJa8loRoCgkdhYBAExZHQKIXmUYRCFQI5mgWfZ4hMJpJC4boTGcCY0m0QJVBAIh2EIZZ5H4VIVAqeZ1H8M5oAmSg7g8TR1n4fQrmUQZCgqF5eEmYhYBgKQJiCD4PmaegKhWJZnAQDZkhqaYKFocYnGadZ8h+KJoiGQhfEIURAmKEAYAgeo1H8OZrAoeoyhGKYngaHInmuCpOjmKAkHMHo+iiSZxmKQoXkGCwWigRQlnqLh7jKSh7DYUYzm0CgAk+DIrFCAo3i6LYKnKWYuk6Wp4keKIqDsLh7BYLhJmaZo5mcYAijAOZtFsXpajubZLG6co8CSShtnYeJrGeVpzjwbxLnafI/mcK5ZnmPgtGuap+j6cIMB8CocDAK43AaQAwjwJwQkSaZsDcBI7jETBHBqRhxkibwWkCMQsgcG5Ii2TB+nkN5yEyJwjkqcJMh8DpKDKTIrB2TBmnyGwFkwMw8mcMpOmQbJbBiTwziyUxBDsc5sD8QJRnQKprEWTg0g0DxNlKMpsF8RpSHUTQ7BuUp0n0VxZi4MxrDSJ40DYDYHGKWJ2E2FxmyADYnGqMRBgeYh0FOLh9kccpcncJsVw7RdjvA2M4eovRmCSFkMwQIoAQEBA" to Nothing
		Get ComAdd of hoAppearance 2 "gBFLBCJwBAEHhEJAAChABAIDg6AADACAxRDQNABQKAAzQFAYaBmG6GAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQ1DAAUIjKLMIhmGAYJAGIBJCjWGodQLOEgwHIERQjEyUpIyVAkYw5HqNaQjICoJoSOwAU47IaCIAFJSpCygKKgSjhRpoAAyU5IUgVPC4XSbD6zYDqapaTheEQyDSJNr3DCMUTlFYYLrmaQKMhqZJhWjbFSWXUpJ4pSrLMIyfTwZRJGzIK7jabLIjaP6GUDhVaYbRUL46CiEb5AAJsVpCCZrYRJOYVdQeDYbQCNLDhHQIDqaA6kZRAdQ2bpMBznPSvbovDgLWhGYqhbLCNibRC+d4HNrCYIlCjpMw3CYGIOHOMRsm0OxFjSZppneHQNFcSwRAOaprjqY4dgYe4VgGWwADucRuHYCpdByYROH8AAOC8D4NgEXwYBWEZyGAWoHg2MRCECBAkFAGhGDGUB1ByBhQkUIAPgCRAMEIExhIuNhCEKBAlnAcwQgAYQXAIIRWEUFwJAGQ42CiCoihiLgugsYwDjSZ4MkICJWCaDZjgiZg6EIQQInSV4PmKeIyEKEBkBQDhEgwZBzjSd4SlEQJgk+E5khkRhIhSZA5FIUoVGWCQkl+FpkliTJnhXSYaFaGJOlEIhmC2ZoJgIZIaiWGYuG62IpDyT4TGSM5eGyCpmCnPIcCeQg+H6HZmnoAh6iAaBDjSL4hkUCgmgKHhlHmeIPh8BwKAqEohGkOgOHCI4pAmMoMhUKByj6CQUCkWoGhSKJpGkJoQiOJR6G4cYTmcSQuiKKRqEqPovhmBIJiCN4YEACQGFsN5lliToyiwbAKkKQoSGcWQ2HKERrhiJJvjLUR8leL5sDsBpQiUZZpDaO4eAACZWh+LYtDsSpejQbmJnIEAuEsLJvECRgLiSH46m2W4Gl+OxpFqWo0ECSR7lQaI9m8C4+nqO4uAIHp+B4MAJmcAAeC+YgenmPwwHwHInkKRYMDaWIQGmeh3AmPpxDsCJHkWbhBAIdZDmMGZXBmRZMHwVwikUIwam0MAMC4awiEmOYyHsXwkkIMp5jMLBMDKaRiiqEBsmkNwpkwc5MyiHRrEKfxCiobIaFsQgvmsTBvD2SJuAwNBYkKSh6GsRYbDUDQ7EyVZmEwDwFiKdQ6BQf5XnYDRjD6IIujIfppBgKRcl6BZZnYXYLBWLYpn0KpglqLAtAIZoOneBsZw9RJjnQ+AYQAgCAg=" to Nothing
		Get ComAdd of hoAppearance 3 "gBFLBCJwBAEHhEJAAChABQsMACAADACAxRDQNABQKAAzQFAYawLBgABhGUZoJhUAIIRZGMIjFDcEwxC6NIpAWCYQgUNQCQiNAzxAKQchhD4ZAIkGY4ZhyA42SBAcbyDCEShoGqPRhmCg5UjmM4oQLSFDULC0fSBBIYaSGEY5QoqIYfArGQYQTRUPyUdoOBIACwLChWLA1CTZdowSKoYTXBq3IgqerIapmSYaV7YNh3VY1IR/JSVJYlaYJDoyNI4ThHc5xVLtfSfAiiJrxOKcTAAFJ0QKFUbRUz+OgBTpvaZxagaSpSG5WRpWEI5PAdN4zTa7YDsS67FiSG5oWpEFq2eAGdzlVLMMqhG5gAxqNKzbLfMCXfJIbyrBIcYLoXItCqFYskMTwxlgAY+haFZRlQZQ4HwHR3AoMx5jEch2lMfZGl8eY+jYXBvBsAAHFeRQDmuRR8nsSI2CoEgIEIRQBiQYwdAcUZIGUUIQhGGAGECRAhDYChGFERAMCgQheEcGQgHkEAwkICx2BCFoAj+B5iAiBgigiYhIgid4JkIQBwm2ChijiKgsguYpokYLYMmKQIiDYDgjgEAg6g6Y5InYPoPmOIAiEKEJFgkFIvhGYwIlIMoSTmAhOGgJJJC4UoSiUSIcncKZlp8WoOAOAxeF6FBlEkNhPGcZgJhYU4ZiMMweGoDAmkGfhuhWJoJDgIIUCYeZWGGHYkhkWhuB+ZYhEIcIUmcKZSHeIJmgoFgyCeaIBgKCoYCgGYSHiI5oEoQgsiKBgKCCH4SOAfoGiQaZKPmJ5jGCIJniiZgpk6DonGkKomgOHpnjqFoCiaawKioSYXg0eoGi6KZrBqIo6hgEIal6GosiwCpuDIBgsEqDJniYa4bVuFYkDqepKjCLQJiiR4XCyawGk+JpGgsZIXjabRbEKV4disSYwDCH5OlsIpWjmaA5HKUomCYOp+l6OgkhoUoWiMLpbH6bw7G0KRynOHYuGuXobhWB4MAaaoaimO52naB4hnkYInhERYLBAGAhnECw+H2BwhkmSg7kMMIqHyb49hAECAg=" to Nothing
		Get ComAdd of hoAppearance 4 "gBFLBCJwBAEHhEJAAChABOIDg6AADACAxRDQNABQKAAzQFAYaBqGCGAAGEZRSgmFgAQhFcZQTCsBw7DCEYxjOAwFgmEQxDIOIBQSKYcwiGQaRrkIYgEiONoaR7HchSFIcIxPFKRBhkKYocjyG5GRoBcIyXAcRSYAB2Q4ESoKShePw5UDTcCzHR8RxEDKNRLpOQbDgOUZTWbVUaDKIsXzZCKHbZhG4YRp6CZKRpYEB1bYtKTRKqLKrpeTbOoSHolTbiIATTYlG4THyEZQrDIaDjOSIXZaGFzwSDWGgBJ60bRwHIaAxGWoHRxfEZVfBONQHMSBc5xa64JyHAImWrcUbWfaYYZ0AC6MRkK8cXABPQANixKZsCizE4DDbTYzjRheC2F4nnEOJRG0BRXEWOICEocByiyCJTiQOJVGYIQ8gofpDgsG5uF+ah6D2Xp+GGP5gkCfwRHofwOnuSB2heVpZnIUZQhAIQJBQBoRgwdAdEcIYVEIQhGGAMQDBCBJYEUGgNhCEMcHsXIkCIAAMIILQWAkAZDjYJIJiIWIeCqCRMHiNI/guYwIkYMoMmMSJWDaDZjgiTIzg6Yo4iIPoPGIdAmECChiFKXhGAQJIAmISgQCSSQ2E6E5lAkRhShSZRJFQOoVkCaRkAqFpQhIPhehCY54hYQoRCOYo+GaExOnmJhghqZhJjIYYbmaaJ0l+HJkiCYgtDGY5RkIegfmeSY6GOD4MnoBh1D2aBJkYbYhmcCgigaIhOloEJ3h0aATD4bgWCkQoehaGAnniHhNgwKI6HaConmiSYCF4I5niGQoLDmaoAiKKoaE6eJ2H+HZnFoeohigKwqCwGItmqA4ejIHgrkIHo+iuEA4h6PGMmIHo1i0LIKk6SoMCSWwcm2LAkisAAAgmQgLFYcw3myaxmkmG4GgsdIXjebYjjaVQIC0eQFAONADguBpqjaaIKlwGIuG4GwOkWOYAAqDoljqbIrmIJ41m4O5iGYK5FAwBp0ikag7mqbI+GoCwyEyPgpBCQwOj0KRBGKFgpnAbAjXWMQ8EaeIuG6a5SHWHZxFyBoIjEbA8FQCJJmiZAmmOORwHyCwXgkbwqn8LYoDKOZNAmJpinyOzTm8aZrBWH5QhGAxCCedBMm8L5Fi+fAEFCPgvksVp0h8NQBn8RpLi7NQKBALxLHyF43EaDRPDOMoxkqXp4kYaRLlMTQIDWbQeguR5iluBxCBgNBCH6dIJnaSZjF+LQZgGQSh5DOFEa4dQsi5GILsaA8ReBuHoEYZ4ZwkDFFwJEYo2grjcHOFUAoFA7gJFqFEDYrQyilC+PwNgyRBBLH4C8FIzxiD8CeBYEgUQ9CtAiEwYgtQyDqDWPUTjBhXBrCmAcKoJQ6iGF6DEMA8BpieA4BgMQdxDg9GSOkLQgRCjhHiDMV4Ewfh3AoGULIiBujRAuJ0c4+gEi4ASOkRAfhWgjCKKEFACCAg" to Nothing
		Get ComAdd of hoAppearance 5 "gBFLBCJwBAEHhEJAAChABGgDg6AADACAxRDQNABQKAAzQFAYZBwGiGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJAKCQ3DTJUBjIKcIhiGsgAzAJIUaw1DqGY7nKZoRioAIoSAMM7DCKUQSLGyQZqBSCQGjsAI+OyHAiABSNJwtHygIRoKqqHg2PoiSAEUZhdRlHShKSqLQiaIRSDUJZsW5EIyjBZ8EznOqbJApOKrCgOTYaWbUdSxPTEUwTFiXJgmKRKIoiOAAY7IEgSFLsThrIKha5yDI4bxyAwXQjeYABbY0E4HQarcqzCrKGp/HYJXyAGgQHYkB5JAaQMBtGpoJrCeKQXDdVyXFwdET1BLZQA2HeUTTRVCScqnaTMZh8DgGxniKfYbngAxFkmVJAnSdougwDhRlMGZ1GEPR9HQapDGWWhyCMe4ugQDx9naYRvm6cQfAUJ47m8cofBYAZOGCHg2mETgCBCERAGkGJHEGVByBkUwUCSIgChAMQIE2BJRiQVQDAoEIWlWIxOgGBBcGyBQYlQXAkAcDpYh4KYKCKKI2CyC5ijONJvgySZ4lQWINkKCJmCWDpjkQaJPg+UA4joMYQiQI4eEYHAkgAYhKBgJJCh43JlAkEgwhSJA5E4VoVE6UQCFoL5lkkBhXhUCR5gYOQKAieYUneGZlEmJhfhqZYJFIWgQCWQp+F6GxigmHJ3BoJ4JmYMw7maKZSH6HxoAiQhvhwZ1VHYFAogmBIXiAZ55jKDIQgeChGG+G5BAoVJHiWaBYkIecznoOoeiMZYCj6IoYmcGhckeCophONoKh4aZagKLYrGkEZggeLJkCmThGDmZg5m6L4nmuOoCHaGJNnsBooAAIopCAcIZEiep2kqLwpnqCIviIBQLA4dolEECZakuK4sksYhYAgLZLOsQJLHuBBIjibR7haWYfGwawhAOJpmBuGpajuJRJkYbxAmgORynCOZvgqApejcAgIG4OYUA0e5em+PhokQXhKAYKx8AsCo+FEcJDA6D5MnwLwDkTWJulQQJuDEIphC2cQsHYbJEDCYJBAOLBrDIHwekUMBIiITgpmMcRhAOKYDgyRwnkyYwMjcK4cnAfAnCmSgzkoGhnkGZ45k6SIxjMTPIFCZOZEKSBxA0Fpui2b5LFoKIqGoaY/FKUY1gmdpQjOKxbBIV4zi0DQ6nmOhmFkUophCLILEMV5YiWCZkH+W5nl2HxfiiMwQmMTZOmqLhaLsx9iUH6JAMI1hCDjECFQawhghjBG2DseoGQzhNHwDwTAMAsgTEeCUZI1Q5jFHyLodYmWxB8GsPEVIPwxhSD6Awb4dgJD2HsAQQIoAQEB" to Nothing
	Send Destroy to hoAppearance
	Set ComBackground OLEexElementBackColor to (RGB(255,255,255))
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Rectangular" 0 0 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComShape of hoElement to OLEexShapeRectangular
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Round" 82 0 to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComShape of hoElement1 to OLEexShapeRound
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Rhomb" 138 0 to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComShape of hoElement2 to OLEexShapeRhomb
		Send Destroy to hoElement2
		Variant voElement3
		Get ComAdd of hoElements "Circle" 196 0 to voElement3
		Handle hoElement3
		Get Create (RefClass(cComElement)) to hoElement3
		Set pvComObject of hoElement3 to voElement3
			Set ComShape of hoElement3 to OLEexShapeCircle
		Send Destroy to hoElement3
		Variant voElement4
		Get ComAdd of hoElements "EBN 1" 0 36 to voElement4
		Handle hoElement4
		Get Create (RefClass(cComElement)) to hoElement4
		Set pvComObject of hoElement4 to voElement4
			Set ComBackColor of hoElement4 to |CI$1000000
			Set ComBorder of hoElement4 to OLEexNoLines
		Send Destroy to hoElement4
		Variant voElement5
		Get ComAdd of hoElements "EBN 2" 54 36 to voElement5
		Handle hoElement5
		Get Create (RefClass(cComElement)) to hoElement5
		Set pvComObject of hoElement5 to voElement5
			Set ComBackColor of hoElement5 to |CI$2000000
			Set ComBorder of hoElement5 to OLEexNoLines
		Send Destroy to hoElement5
		Variant voElement6
		Get ComAdd of hoElements "EBN 3" 108 36 to voElement6
		Handle hoElement6
		Get Create (RefClass(cComElement)) to hoElement6
		Set pvComObject of hoElement6 to voElement6
			Set ComBackColor of hoElement6 to |CI$3000000
			Set ComBorder of hoElement6 to OLEexNoLines
		Send Destroy to hoElement6
		Variant voElement7
		Get ComAdd of hoElements "EBN 4   " 160 36 to voElement7
		Handle hoElement7
		Get Create (RefClass(cComElement)) to hoElement7
		Set pvComObject of hoElement7 to voElement7
			Set ComBackColor of hoElement7 to |CI$4000000
			Set ComBorder of hoElement7 to OLEexNoLines
		Send Destroy to hoElement7
		Variant voElement8
		Get ComAdd of hoElements "EBN 5 " 220 36 to voElement8
		Handle hoElement8
		Get Create (RefClass(cComElement)) to hoElement8
		Set pvComObject of hoElement8 to voElement8
			Set ComBackColor of hoElement8 to |CI$5000000
			Set ComMinHeight of hoElement8 to 64
			Set ComMinWidth of hoElement8 to 64
			Set ComBorder of hoElement8 to OLEexNoLines
		Send Destroy to hoElement8
	Send Destroy to hoElements
	Set ComScrollPos False to -160
	Send ComEndUpdate
End_Procedure
21
Is it possible to add an inner control on the surface

// Occurs once an inside control fires an event.
Procedure OnComOleEvent Variant   llElement Variant   llEv
	Forward Send OnComOleEvent llElement llEv
	Showln llEv
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "activex hosting" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComType of hoElement to OLEexElementHostControl
			Set ComControl of hoElement to "Forms.CommandButton.1"
			Set ComCaption of hoElement to "Command Button"
			Set ComHeight of hoElement to 64
			Set ComWidth of hoElement to 128
			Set ComElementFormat of hoElement to "14;"caption"/"client""
			Set ComCaptionAlign of hoElement to OLEexTopCenter
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
20
How can I create a copy of the element
Procedure OnCreate
	Forward Send OnCreate
	Set ComBackground OLEexElementBackColor to (RGB(255,255,255))
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element 1" 0 0 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Variant voElement1
			Get ComCopy of hoElement Nothing Nothing to voElement1
			Handle hoElement1
			Get Create (RefClass(cComElement)) to hoElement1
			Set pvComObject of hoElement1 to voElement1
				Set ComCaption of hoElement1 to "Aka"
			Send Destroy to hoElement1
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
19
How can I define an opaque background for elements

Procedure OnCreate
	Forward Send OnCreate
	Set ComBackground OLEexElementBackColor to (RGB(255,255,255))
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element 1" 0 0 to Nothing
	Send Destroy to hoElements
	Variant voElements1
	Get ComElements to voElements1
	Handle hoElements1
	Get Create (RefClass(cComElements)) to hoElements1
	Set pvComObject of hoElements1 to voElements1
		Get ComAdd of hoElements1 "Element 2" 16 16 to Nothing
	Send Destroy to hoElements1
End_Procedure
18
How can I show a different context-menu for all elements
// Occurs when the user selects an item from the object's context menu.
Procedure OnComActionContextMenu OLEContextMenuObjectActionEnum   llAction OLEContextMenuObjectTypeEnum   llObjectType Variant   llObjectID Integer   llCommandID Boolean   llCommandChecked Variant   llCommandCaption Variant   llCommandValue Boolean   llCancel
	Forward Send OnComActionContextMenu llAction llObjectType llObjectID llCommandID llCommandChecked llCommandCaption llCommandValue llCancel
	Showln llAction llObjectID llCommandID
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Set ComContextMenu OLEexContextMenuElement to "Item 1[id=1000],Item 2[id=2000]"
	Set ComBackground OLEexElementBackColor to (RGB(255,255,255))
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "Element 1" 0 0 to Nothing
	Send Destroy to hoElements
	Variant voElements1
	Get ComElements to voElements1
	Handle hoElements1
	Get Create (RefClass(cComElements)) to hoElements1
	Set pvComObject of hoElements1 to voElements1
		Get ComAdd of hoElements1 "Element 2" 16 16 to Nothing
	Send Destroy to hoElements1
End_Procedure
17
How can I show a different context-menu for element
Procedure OnCreate
	Forward Send OnCreate
	Variant v
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComAdd of hoElements "Element" 0 0 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Get ComInvokeContextMenu of hoElement "Item 1[id=1000],Item 2[id=2000]" to v
		Send Destroy to hoElement
	Send Destroy to hoElements
	Showln v
End_Procedure
16
How can I change the design-modes being shown on the control's toolbar

Procedure OnCreate
	Forward Send OnCreate
	Set ComDesignModes to "Read-Only#0,Allow Any#3,Only-Element#1,Only-Pool#2"
End_Procedure
15
How can I change the default header's background color

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -250 -150 500 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 4
				Send Destroy to hoLanes
			Send Destroy to hoLane
			Variant voLane1
			Get ComLane of hoPool OLEexLaneVertical to voLane1
			Handle hoLane1
			Get Create (RefClass(cComLane)) to hoLane1
			Set pvComObject of hoLane1 to voLane1
				Variant voLanes1
				Get ComChildren of hoLane1 to voLanes1
				Handle hoLanes1
				Get Create (RefClass(cComLanes)) to hoLanes1
				Set pvComObject of hoLanes1 to voLanes1
					Set ComCount of hoLanes1 to 4
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
		Send Destroy to hoPool
	Send Destroy to hoPools
	Set ComBackground OLEexPoolHorizontalHeaderBackColor to (RGB(0,255,0))
	Set ComBackground OLEexPoolVerticalHeaderBackColor to (RGB(0,192,0))
	Send ComEndUpdate
End_Procedure
14
How can I remove the Design item from the control's toolbar, to be locked ( no-design )

Procedure OnCreate
	Forward Send OnCreate
	Set ComToolBarFormat to "-1,100,101"
	Set ComDesignMode to OLEexDesignLock
End_Procedure
13
How can I remove/disable the Color and Display-Grid from the surface's context menu

Procedure OnCreate
	Forward Send OnCreate
	Set ComContextMenu OLEexContextMenuSurface to "Delete[id=-32004](All[id=-32000][ttp=Deletes all the objects from the surface],[sep],Elements[id=-32001][ttp=Deletes all elements from the surface],Links[id=-32002][ttp=Deletes all links from the surface],Pools[id=-32003][ttp=Deletes all pools from the surface])"
End_Procedure
12
How can I change the element's context-menu when the user right-clicks the element

// Occurs when the user selects an item from the object's context menu.
Procedure OnComActionContextMenu OLEContextMenuObjectActionEnum   llAction OLEContextMenuObjectTypeEnum   llObjectType Variant   llObjectID Integer   llCommandID Boolean   llCommandChecked Variant   llCommandCaption Variant   llCommandValue Boolean   llCancel
	Forward Send OnComActionContextMenu llAction llObjectType llObjectID llCommandID llCommandChecked llCommandCaption llCommandValue llCancel
	// ContextMenuObjectFromID(ObjectType,ObjectID).BackColor = RGB(255,255,0)
	Showln llAction llCommandCaption
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Get ComAdd of hoElements "element" 0 0 to Nothing
	Send Destroy to hoElements
	Set ComContextMenu OLEexContextMenuElement to "Simple,Value[edit=123],[sep],Popup(Check 1[chk],Check 2[chk=1])"
	Send ComEndUpdate
End_Procedure
11
How do I prevent showing the context-menu when user right-clicks the surface
Procedure OnCreate
	Forward Send OnCreate
	Set ComContextMenu OLEexContextMenuSurface to ""
End_Procedure
10
How do I create parent-child (tree) lanes

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -250 -150 500 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderSize of hoPool OLEexHeaderTop to 32
			Set ComHeaderVisible of hoPool OLEexHeaderBottom to False
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 2
					Variant voLane1
					Get ComItem of hoLanes 0 to voLane1
					Handle hoLane1
					Get Create (RefClass(cComLane)) to hoLane1
					Set pvComObject of hoLane1 to voLane1
						Variant voLanes1
						Get ComChildren of hoLane1 to voLanes1
						Handle hoLanes1
						Get Create (RefClass(cComLanes)) to hoLanes1
						Set pvComObject of hoLanes1 to voLanes1
							Set ComCount of hoLanes1 to 2
							Variant voLane2
							Get ComItem of hoLanes1 0 to voLane2
							Handle hoLane2
							Get Create (RefClass(cComLane)) to hoLane2
							Set pvComObject of hoLane2 to voLane2
								Variant voHeaderLane
								Get ComHeader of hoLane2 to voHeaderLane
								Handle hoHeaderLane
								Get Create (RefClass(cComHeaderLane)) to hoHeaderLane
								Set pvComObject of hoHeaderLane to voHeaderLane
									Set ComCaption of hoHeaderLane to "Phase <b>1.1"
								Send Destroy to hoHeaderLane
							Send Destroy to hoLane2
							Variant voLane3
							Get ComItem of hoLanes1 1 to voLane3
							Handle hoLane3
							Get Create (RefClass(cComLane)) to hoLane3
							Set pvComObject of hoLane3 to voLane3
								Variant voHeaderLane1
								Get ComHeader of hoLane3 to voHeaderLane1
								Handle hoHeaderLane1
								Get Create (RefClass(cComHeaderLane)) to hoHeaderLane1
								Set pvComObject of hoHeaderLane1 to voHeaderLane1
									Set ComCaption of hoHeaderLane1 to "Phase <b>1.2"
								Send Destroy to hoHeaderLane1
							Send Destroy to hoLane3
						Send Destroy to hoLanes1
					Send Destroy to hoLane1
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
9
How do I create a pool with horizontal and lanes

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -250 -150 500 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 4
				Send Destroy to hoLanes
			Send Destroy to hoLane
			Variant voLane1
			Get ComLane of hoPool OLEexLaneVertical to voLane1
			Handle hoLane1
			Get Create (RefClass(cComLane)) to hoLane1
			Set pvComObject of hoLane1 to voLane1
				Variant voLanes1
				Get ComChildren of hoLane1 to voLanes1
				Handle hoLanes1
				Get Create (RefClass(cComLanes)) to hoLanes1
				Set pvComObject of hoLanes1 to voLanes1
					Set ComCount of hoLanes1 to 4
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
8
How do I add programatically a pool with horizontal lanes

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -250 -150 500 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneHorizontal to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 4
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
7
How do I add programatically a pool with vertical lanes

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -250 -150 500 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 4
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure
6
How can I change the toolbar's visual appearance

Procedure OnCreate
	Forward Send OnCreate
	Variant voAppearance
	Get ComVisualAppearance to voAppearance
	Handle hoAppearance
	Get Create (RefClass(cComAppearance)) to hoAppearance
	Set pvComObject of hoAppearance to voAppearance
		Get ComAdd of hoAppearance 1 "c:\exontrol\images\normal.ebn" to Nothing
	Send Destroy to hoAppearance
	Set ComBackground OLEexToolBarAppearance to |CI$1000000
	Set ComBackground OLEexToolBarBackColor to (RGB(255,255,255))
	Set ComBackground OLEexToolBarForeColor to (RGB(40,40,40))
	Set ComBackground OLEexToolBarButtonDownBackColor to |CI$1606060
	Set ComBackground OLEexToolBarButtonDownForeColor to (RGB(240,240,240))
	Set ComBackground OLEexToolBarButtonHotBackColor to |CI$1a0a0a0
	Set ComBackground OLEexToolBarButtonHotForeColor to (RGB(255,255,255))
End_Procedure
5
How can I change the toolbar's background color

Procedure OnCreate
	Forward Send OnCreate
	Set ComBackground OLEexToolBarBackColor to (RGB(255,255,255))
End_Procedure