138
exActionContextMenuObject, An item from object's context menu is executing. Use the AllowContextMenu property to specify the combination of keys that allows the user to open the object's context menu. Use the ContextMenu property to provide a custom context menu for the objects on the surface. The ActionContextMenu event notifies your application once an action occurs within the object's context menu.
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 18 ? `exActionContextMenuObject` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 18 ? `exActionContextMenuObject` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowDesignHeader to OLEexDesignHeaderLock
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 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 2
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
		Send Destroy to hoPool
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Right-Click the pool, element or the link to open its context menu, and change a property of it"
End_Procedure
137
exContextMenuObject, The object's context menu is running. The user right-clicks an object on the surface, and it's context menu is shown. Use the AllowContextMenu property to specify the combination of keys that allows the user to open the object's context menu. Use the ContextMenu property to provide a custom context menu for the objects on the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 17 ? `exContextMenuObject` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 17 ? `exContextMenuObject` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowDesignHeader to OLEexDesignHeaderLock
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 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 2
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
		Send Destroy to hoPool
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Right-Click the pool, element or the link to open its context menu"
End_Procedure
136
exMoveLane, The user moves/changes the position of the lane of the pool. The AllowMoveLane property specifies the keys combination to allow user to moves/changes the position the lane
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 16 ? `exMoveLane` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 16 ? `exMoveLane` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowDesignHeader to OLEexDesignHeaderLock
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 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 2
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
		Send Destroy to hoPool
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click the lane's header to drag to a new position"
End_Procedure
135
exResizeLane, The user resizes the lane of the pool. The AllowResizePoolHeader property specifies the keys combination to allow user to resize the header of the pool
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 15 ? `exResizeLane` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 15 ? `exResizeLane` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowDesignHeader to OLEexDesignHeaderLock
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 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 2
				Send Destroy to hoLanes1
			Send Destroy to hoLane1
		Send Destroy to hoPool
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click the pool's header to resize it"
End_Procedure
134
exResizePoolHeader, the user resizes the header's pool from the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 14 ? `exResizePoolHeader` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 14 ? `exResizePoolHeader` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click the pool's header to resize it"
End_Procedure
133
exMovePool, The user moves the pool from the surface. The AllowMovePool property specifies the keys combination to allow user to move the pool
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 13 ? `exMovePool` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 13 ? `exMovePool` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click a pool and drag to reposition it"
End_Procedure
132
exResizePool, The user resizes the pool from the surface. The AllowResizePool property specifies the keys combination to allow user to resize the pool
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 12 ? `exResizePool` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 12 ? `exResizePool` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Resize a pool"
End_Procedure
131
exCreatePool, The user creates pools on the surface. The AllowCreatePool property specifies the keys combination to allow user to create pools on the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 11 ? `exCreatePool` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 11 ? `exCreatePool` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Hold SHIFT, double-click on the surface, and immediately drag to a new position to create a new pool"
End_Procedure
130
exDesignMode, The user changes the surface's design mode. The exDesignMode operation occurs, when the user selects a new design-mode, from the control's toolbar.
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 10 ? `exDesignMode` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 10 ? `exDesignMode` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click the Design Menu and select one of the options"
End_Procedure
129
exUndo, An Undo operation is performed (CTR + Z), exRedo, A Redo operation is performed (CTR + Y). exUndoRedoUpdate, The Undo/Redo queue is updated
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value case (default:value;32:`exUndoRedoUpdate`;33:`exUndo`;34:`exRedo`)",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value case (default:value;32:`exUndoRedoUpdate`;33:`exUndo`;34:`exRedo`)",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowUndoRedo to True
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Press CTRL+Z to Undo, CTRL+Y to Redo"
End_Procedure
128
exLinkObjects, the user creates an element on the surface. The AllowLinkObjects property specifies the keys combination to allow user to link elements on the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 9 ? `exLinkObjects` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 9 ? `exLinkObjects` : value",llOperation,Nothing,Nothing))
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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	Send ComEndUpdate
	Showln "Hold SHIFT, click an element, and drag to another element to create a link between them"
End_Procedure
127
exEditObject, the user edits the element's caption
// Occurs when the user presses and then releases the left mouse button over the control.
Procedure OnComClick 
	Forward Send OnComClick 
	// ElementFromPoint(-1,-1).Edit(0)
End_Procedure

// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 8 ? `exEditObject` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 8 ? `exEditObject` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click an element to edit its caption"
End_Procedure
126
exCreateObject, the user creates an element on the surface. The AllowCreateObject property specifies the keys combination to allow user to create elements on the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 7 ? `exCreateObject` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 7 ? `exCreateObject` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Double-click on the surface and immediately drag to a new position to create an element"
End_Procedure
125
exSelectNothing, the user clicks an empty zone of the surface. The AllowSelectNothing property specifies the keys combination to allow user to select nothing on the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 6 ? `exSelectNothing` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 6 ? `exSelectNothing` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowSelectNothing to True
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Variant voElement
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComSelected of hoElement to True
		Send Destroy to hoElement
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Select an element, and then click outside to select nothing"
End_Procedure
124
exSelectElement, the user clicks the object to get it selected. The AllowSelectObject property specifies the keys combination to allow user to select the object
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 5 ? `exSelectElement` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 5 ? `exSelectElement` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Hold ALT and click, then drag to select elements within the drawn rectangle. Click an element to select it. CTRL + CLick to unselect it"
End_Procedure
123
exMoveElement, the user moves the object. The AllowMoveObject property specifies the keys combination to allow user to move the object
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 4 ? `exMoveElement` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 4 ? `exMoveElement` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Move an element"
End_Procedure
122
exResizeElement, the user resizes the object. The AllowResizeObject property specifies the keys combination to allow user to resize the object
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 3 ? `exResizeElement` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 3 ? `exResizeElement` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + OLEexEndControlPoint + OLEexStartControlPoint)
	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 "Node <b>1" -64 -64 to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComAutoSize of hoElement to False
		Send Destroy to hoElement
		Variant voElement1
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComAutoSize of hoElement1 to False
		Send Destroy to hoElement1
		Variant voElement2
		Get ComAdd of hoElements "Node <b>3" 64 -64 to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComAutoSize of hoElement2 to False
		Send Destroy to hoElement2
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Resize an element"
End_Procedure
121
exSurfaceHome, the user clicks the Home button on the control's toolbar, so the surface is restored to original position. The Home method has the same effect
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 2 ? `exSurfaceHome` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 2 ? `exSurfaceHome` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click the Home button"
End_Procedure
120
exSurfaceZoom, the user magnifies or shrinks the surface. The AllowZoomSurface property specifies the keys combination to allow user to zoom the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 1 ? `exSurfaceZoom` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 1 ? `exSurfaceZoom` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click and drag the surface to reposition it"
End_Procedure
119
exSurfaceMove, the user scrolls or moves the surface. The AllowMoveSurface property specifies the keys combination to allow user to move / scroll the surface
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" (ComFormatABC(Self,"value = 0 ? `exSurfaceMove` : value",llOperation,Nothing,Nothing))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" (ComFormatABC(Self,"value = 0 ? `exSurfaceMove` : value",llOperation,Nothing,Nothing))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
	Showln "Click and drag the surface to reposition it"
End_Procedure
118
FormatABC method formats the A,B,C values based on the giving expression and returns the result
Procedure OnCreate
	Forward Send OnCreate
	Showln (ComFormatABC(Self,"value format ``",1000,Nothing,Nothing))
End_Procedure
117
FreezeEvents(Freeze) method prevents firing any event. For instance, FreezeEvents(True) freezes the control's events, no no event is fired, until the FreezeEvents(False) is called
// Notifies the application once the control fires an event.
Procedure OnComEvent Integer   llEventID
	Forward Send OnComEvent llEventID
	Showln (ComEventParam(Self,-2))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComFreezeEvents True
	Showln "No event is fired after FreezeEvents(True) call"
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
End_Procedure
116
The exAllowChangeFrom(0x20)/exAllowChangeTo(0x40) flag of LinkControlPointEnum type allows the user to adjust the link's from/to element by dragging and dropping the start control point (requires the exStartControlPoint/exEndControlPoint flag)
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" llOperation
	Variant v
	Variant voLink
	Get ComFocusLink to voLink
	Handle hoLink
	Get Create (RefClass(cComLink)) to hoLink
	Set pvComObject of hoLink to voLink
		Get ComID of hoLink to v
	Send Destroy to hoLink
	Showln v
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" llOperation
	Variant v1
	Variant voLink1
	Get ComFocusLink to voLink1
	Handle hoLink1
	Get Create (RefClass(cComLink)) to hoLink1
	Set pvComObject of hoLink1 to voLink1
		Get ComID of hoLink1 to v1
	Send Destroy to hoLink1
	Showln v1
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
		Get ComAdd of hoElements "Node <b>3" 64 -64 to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Set ComFocusLink to "L1"
	Send ComEndUpdate
End_Procedure
115
The LayoutStartChanging(exFocusLink)/LayoutEndChanging(exFocusLink) event notifies your application when the user focuses on a new link
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" llOperation
	Showln (ComFocusLink(Self))
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" llOperation
	Showln (ComFocusLink(Self))
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Send ComEndUpdate
End_Procedure
114
Focus a link
// Notifies your application once the control's layout has been changed.
Procedure OnComLayoutEndChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutEndChanging llOperation
	Showln "LayoutEndChanging" llOperation
End_Procedure

// Occurs when the control's layout is about to be changed.
Procedure OnComLayoutStartChanging OLELayoutChangingEnum   llOperation
	Forward Send OnComLayoutStartChanging llOperation
	Showln "LayoutStartChanging" llOperation
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (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 "Node <b>1" -64 -64 to Nothing
		Get ComAdd of hoElements "Node <b>2" Nothing Nothing to Nothing
	Send Destroy to hoElements
	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 160 to Nothing
	Send Destroy to hoPools
	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 "L1" to Nothing
	Send Destroy to hoLinks
	Set ComFocusLink to "L1"
	Send ComEndUpdate
End_Procedure
113
The caption is displayed on the back, so the picture overrides it. How can I place the caption on the foreground

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComDrawPartsOrder to "extracaption,extrapicture,picture,check,caption,client"
	Set ComHTMLPicture "pic1" to "c:\exontrol\images\sun.png"
	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 "<b>Element" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComPicturesAlign of hoElement to OLEexMiddleCenter
			Set ComCaptionAlign of hoElement to OLEexMiddleCenter
			Set ComPictures of hoElement to "pic1"
		Send Destroy to hoElement
	Send Destroy to hoElements
	Send ComEndUpdate
End_Procedure
112
Expandable-caption

// Occurs when an anchor element is clicked.
Procedure OnComAnchorClick String   llAnchorID String   llOptions
	Forward Send OnComAnchorClick llAnchorID llOptions
	Showln llAnchorID
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 "<solidline> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAAgAA4AAwisXjMYH0TAECMYAjsCMwAM4AkMGhEGOUei0Yl8bkQAOAAlsGmsSlp0h0SgkCF8DgsNhUMhEKiESkYAoMlk8phssmcCltLMNTAFOlFDlc2l0amMxjomAAjAA5AA2tMaHcfplZk1blVDqtuoNXjoAAEBA=>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>▲</a><br>+ withdraw(amount: Currency)" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "Account"
			Set ComX of hoElement to -256
			Set ComY of hoElement to -164
			Set ComCaptionSingleLine of hoElement to OLEexCaptionBreakWrap
			Set ComCaptionAlign of hoElement to |CI$4
		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 "<solidline> <c><b>Person</b></solidline><br>+ name: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAAgAA4AAwisXjMYH0TAECMYAjsCMwAM4AkMGhEGOUei0Yl8bkQAOAAlsGmsSlp0h0SgkCF8DgsNhUMhEKiESkYAoMlk8phssmcCltLMNTAFOlFDlc2l0amMxjomAAjAA5AA2tMaHcfplZk1blVDqtuoNXjoAAEBA=>▲</a><br><solidline># birth: Date</solidline><br>+ getCurrentAge(): int<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>▲</a>" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "Person"
			Set ComY of hoElement1 to -164
			Set ComCaptionSingleLine of hoElement1 to OLEexCaptionBreakWrap
		Send Destroy to hoElement1
	Send Destroy to hoElements1
	Variant voElements2
	Get ComElements to voElements2
	Handle hoElements2
	Get Create (RefClass(cComElements)) to hoElements2
	Set pvComObject of hoElements2 to voElements2
		Variant voElement2
		Get ComAdd of hoElements2 "<solidline> <c><b>Student</b></solidline><br><solidline>+ classes: List<Course> <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAA+AAgAECMcTi4AMwAM4AjMGhEGOUVAA4AAwk8plcqihwAElg0wiUlOkOiUEgQvgcFhsKhkIhUQiUUnccj0gn0jmMagUlowAMNOpEfkMNkkmlEqrctjQmAAjAA5AA2sssHcbnkdq1Ln1QtVSjQAAEBA==>▲</a></solidline><br>- attend(class: Course)<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>▲</a><br>- sleep()" Nothing Nothing to voElement2
		Handle hoElement2
		Get Create (RefClass(cComElement)) to hoElement2
		Set pvComObject of hoElement2 to voElement2
			Set ComID of hoElement2 to "Student"
			Set ComY of hoElement2 to -64
			Set ComCaptionSingleLine of hoElement2 to OLEexCaptionBreakWrap
		Send Destroy to hoElement2
	Send Destroy to hoElements2
	Variant voLinks
	Get ComLinks to voLinks
	Handle hoLinks
	Get Create (RefClass(cComLinks)) to hoLinks
	Set pvComObject of hoLinks to voLinks
Variant vFrom
			Variant voElements3
			Get ComElements to voElements3
			Handle hoElements3
			Get Create (RefClass(cComElements)) to hoElements3
			Set pvComObject of hoElements3 to voElements3
				Get ComItem of hoElements3 "Account" to vFrom
			Send Destroy to hoElements3
Variant vTo
			Variant voElements4
			Get ComElements to voElements4
			Handle hoElements4
			Get Create (RefClass(cComElements)) to hoElements4
			Set pvComObject of hoElements4 to voElements4
				Get ComItem of hoElements4 "Student" to vTo
			Send Destroy to hoElements4
				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 ComCaption of hoLink to "<fgcolor A0A0A0><solidline 808080> <c><b>Link</b></solidline><br># count: number <r><a ;exp=12992>➤</a>"
		Send Destroy to hoLink
	Send Destroy to hoLinks
End_Procedure
111
Expandable-caption

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>Header</b></solidline><br>Line1<r><a ;exp=show lines>+</a><br>Line2<br>Line3" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComCaptionSingleLine of hoElement to OLEexCaptionBreakWrap
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
110
Draws a frame arround the link's arrow

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (|CI$ffffff80 + OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 ComArrowSize of hoLink2 to 8
			Set ComArrowColor of hoLink2 to (RGB(255,255,255))
			Set ComArrowFrameColor of hoLink2 to (RGB(0,0,0))
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
109
Draws a frame arround the arrow for all links

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (|CI$ffffff80 + OLEexAllowChangeTo + OLEexAllowChangeFrom + OLEexOrthoArrange + OLEexMiddleControlPoint + OLEexControlPoint + OLEexEndControlPoint + OLEexStartControlPoint)
	Set ComLinksArrowSize to 8
	Set ComLinksArrowColor to (RGB(255,255,255))
	Set ComLinksArrowFrameColor to (RGB(0,0,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" 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
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
108
Change the size to display the arrow of the link

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (|CI$ffffff80 + OLEexAllowChangeTo + OLEexAllowChangeFrom + 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 ComArrowSize of hoLink2 to 8
		Send Destroy to hoLink2
	Send Destroy to hoLinks
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
107
Change the size to display the arrows for all links

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComAllowLinkControlPoint to (|CI$ffffff80 + OLEexAllowChangeTo + OLEexAllowChangeFrom + OLEexOrthoArrange + OLEexMiddleControlPoint + OLEexControlPoint + OLEexEndControlPoint + OLEexStartControlPoint)
	Set ComLinksArrowSize to 8
	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
	Send ComFitToClient
	Send ComEndUpdate
End_Procedure
106
Extends 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> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAAgAA4AAwisXjMYH0TAECMYAjsCMwAM4AkMGhEGOUei0Yl8bkQAOAAlsGmsSlp0h0SgkCF8DgsNhUMhEKiESkYAoMlk8phssmcCltLMNTAFOlFDlc2l0amMxjomAAjAA5AA2tMaHcfplZk1blVDqtuoNXjoAAEBA=>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>▲</a><br>+ withdraw(amount: Currency)" Nothing Nothing to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComID of hoElement to "Account"
			Set ComX of hoElement to -128
			Set ComCaptionSingleLine of hoElement to OLEexCaptionBreakWrap
			Set ComAutoSize of hoElement to False
			Set ComWidth of hoElement to 256
			Set ComHeight of hoElement to (ComAutoHeight(hoElement))
			Set ComCaptionAlign of hoElement to |CI$4
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure
105
Gets the width/height of the element to fit its content ( as if the AutoSize property is True )

// Occurs when an anchor element is clicked.
Procedure OnComAnchorClick String   llAnchorID String   llOptions
	Forward Send OnComAnchorClick llAnchorID llOptions
	Variant voElements
	Get ComElements to voElements
	Handle hoElements
	Get Create (RefClass(cComElements)) to hoElements
	Set pvComObject of hoElements to voElements
		Variant voElement
		Get ComItem of hoElements "Account" to voElement
		Handle hoElement
		Get Create (RefClass(cComElement)) to hoElement
		Set pvComObject of hoElement to voElement
			Set ComHeight of hoElement to (ComAutoHeight(hoElement))
		Send Destroy to hoElement
	Send Destroy to hoElements
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	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 "<solidline> <c><b>Bank Account</b></solidline><br>+ owner: String <r><a 1;e64=gA8ABzABvABsABpABkg8JABuABlAAgAA4AAwisXjMYH0TAECMYAjsCMwAM4AkMGhEGOUei0Yl8bkQAOAAlsGmsSlp0h0SgkCF8DgsNhUMhEKiESkYAoMlk8phssmcCltLMNTAFOlFDlc2l0amMxjomAAjAA5AA2tMaHcfplZk1blVDqtuoNXjoAAEBA=>▲</a><br><solidline>+ balance: Currency = 0</solidline><br>+ deposit(amount: Currency)<r><a 2;e64=gA8ABjAA+AECMwAM8DABvABshoAOQAEAAHAAGEWjEajMGNoAMoAOgANERMgAOcHAAvAEJhcEh0Qh0Tg0CmkqMMFlUuhkxiMTisXjNCjk6EwAEYAHIAG1MjY7lUsnkwh8/nUClk5gwAAEBA==>▲</a><br>+ withdraw(amount: Currency)" Nothing Nothing to voElement1
		Handle hoElement1
		Get Create (RefClass(cComElement)) to hoElement1
		Set pvComObject of hoElement1 to voElement1
			Set ComID of hoElement1 to "Account"
			Set ComX of hoElement1 to -128
			Set ComCaptionSingleLine of hoElement1 to OLEexCaptionBreakWrap
			Set ComAutoSize of hoElement1 to False
			Set ComWidth of hoElement1 to 256
			Set ComHeight of hoElement1 to (ComAutoHeight(hoElement1))
			Set ComCaptionAlign of hoElement1 to |CI$4
		Send Destroy to hoElement1
	Send Destroy to hoElements1
End_Procedure
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$ffffff80 + OLEexAllowChangeTo + OLEexAllowChangeFrom + 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$ffffff80 + OLEexAllowChangeTo + OLEexAllowChangeFrom + 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