53:
I am using the reserve-neighbors feature, the question is how to shift left/right the neighbors instead of up/down
Dim oSwimLane as P
Dim var_Elements as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.AllowMoveNeighbors = 2
oSwimLane.Template = "DefArrange(0) = 1" // oSwimLane.DefArrange(0) = 1
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B ( move it )",16,32)
	var_Elements.Add("Element <sha ;;0>C",128,0)
oSwimLane.EndUpdate()

52:
I am using the reserve-neighbors feature, the question is if possible to specify the distance between neighbors
Dim oSwimLane as P
Dim var_Elements as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.AllowMoveNeighbors = 1
oSwimLane.Template = "DefArrange(1) = 0" // oSwimLane.DefArrange(1) = 0
oSwimLane.Template = "DefArrange(2) = 0" // oSwimLane.DefArrange(2) = 0
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B ( move it )",0,32)
	var_Elements.Add("Element <sha ;;0>C",0,64)
oSwimLane.EndUpdate()

51:
How do I enable the reserve-neighbors feature
Dim oSwimLane as P
Dim var_Elements as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.AllowMoveNeighbors = 1
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B ( move it )",0,32)
	var_Elements.Add("Element <sha ;;0>C",0,64)
oSwimLane.EndUpdate()

50:
I've noticed that recently, the elements get compacted once the Arrange method is performed. How can I prevent that

Dim oSwimLane as P
Dim var_Element as local
Dim var_Element1 as local
Dim var_Element2 as local
Dim var_Element3 as local
Dim var_Element4 as local
Dim var_Element5 as local
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	' var_Elements.Add("Element A").ID = "A"
	var_Element = var_Elements.Add("Element A")
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.ID = `A`"

	' var_Elements.Add("Element B").ID = "B"
	var_Element1 = var_Elements.Add("Element B")
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.ID = `B`"

	' var_Elements.Add("Element C").ID = "C"
	var_Element2 = var_Elements.Add("Element C")
	oSwimLane.TemplateDef = "dim var_Element2"
	oSwimLane.TemplateDef = var_Element2
	oSwimLane.Template = "var_Element2.ID = `C`"

	' var_Elements.Add("Element D").ID = "D"
	var_Element3 = var_Elements.Add("Element D")
	oSwimLane.TemplateDef = "dim var_Element3"
	oSwimLane.TemplateDef = var_Element3
	oSwimLane.Template = "var_Element3.ID = `D`"

	' var_Elements.Add("Element E").ID = "E"
	var_Element4 = var_Elements.Add("Element E")
	oSwimLane.TemplateDef = "dim var_Element4"
	oSwimLane.TemplateDef = var_Element4
	oSwimLane.Template = "var_Element4.ID = `E`"

	' var_Elements.Add("Element E").ID = "F"
	var_Element5 = var_Elements.Add("Element E")
	oSwimLane.TemplateDef = "dim var_Element5"
	oSwimLane.TemplateDef = var_Element5
	oSwimLane.Template = "var_Element5.ID = `F`"

var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("B"))
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("C"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("D"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("C"))
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("E"))
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("F"))
oSwimLane.Template = "DefArrange(4) = False" // oSwimLane.DefArrange(4) = .f.
oSwimLane.Arrange()

49:
How can I move an element to a specified lane/phase/pool

Dim oSwimLane as P
Dim var_Element as P
Dim var_Element1 as P
Dim var_HeaderLane as local
Dim var_Lanes as local
Dim var_Lanes1 as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.Template = "DefPoolHeaderCaptionFormat(True) = `<fgcolor 808080>Faza <off -4><b><font ;6>%i`" // oSwimLane.DefPoolHeaderCaptionFormat(.t.) = "<fgcolor 808080>Faza <off -4><b><font ;6>%i"
oSwimLane.Template = "DefPoolHeaderCaptionFormat(False) = `<fgcolor 808080>Culoar <off -4><b><font ;6>%i`" // oSwimLane.DefPoolHeaderCaptionFormat(.f.) = "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"
var_Pool = oSwimLane.Pools.Add(-100,-100,250,180)
	' var_Pool.Lane(0).Children.Count = 3
	var_Lanes = var_Pool.Lane(0).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 3"

	' var_Pool.Lane(1).Children.Count = 3
	var_Lanes1 = var_Pool.Lane(1).Children
	oSwimLane.TemplateDef = "dim var_Lanes1"
	oSwimLane.TemplateDef = var_Lanes1
	oSwimLane.Template = "var_Lanes1.Count = 3"

	' var_Pool.Lane(1).Children.item(1).Header.Caption = "<fgcolor FF0000><b>NEW"
	var_HeaderLane = var_Pool.Lane(1).Children.item(1).Header
	oSwimLane.TemplateDef = "dim var_HeaderLane"
	oSwimLane.TemplateDef = var_HeaderLane
	oSwimLane.Template = "var_HeaderLane.Caption = `<fgcolor FF0000><b>NEW`"

var_Element = oSwimLane.Elements.Add("element 1",200,200)
	' var_Element.LaneID(.t.) = "0:H.0,0:V.0"
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.LaneID(True) = `0:H.0,0:V.0`"

var_Element1 = oSwimLane.Elements.Add("element 2",200,200)
	' var_Element1.LaneID(.t.) = "0:H.2,0:V.2"
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.LaneID(True) = `0:H.2,0:V.2`"

oSwimLane.EndUpdate()

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.
function AddLink as v (Link  as  OLE::Exontrol.SwimLane.1::ILink)
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oSwimLane as P
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",48,48)
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))

47:
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-1)

Dim oSwimLane as P
Dim var_Elements as P
Dim var_Link as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",48,48)
var_Links = oSwimLane.Links
	var_Link = var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))
		var_Link.StartPos = 4
		var_Link.EndPos = 3

46:
How do I enable the cross link support ( mixed )

Dim oSwimLane as P
Dim var_Element as P
Dim var_Element1 as P
Dim var_Elements as P
Dim var_Link as P
Dim var_Link1 as P
Dim var_Link2 as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",0,76)
	var_Element = var_Elements.Add("Element <sha ;;0>C",-76,32)
		var_Element.AutoSize = .f.
		var_Element.Height = 32
	var_Element1 = var_Elements.Add("Element <sha ;;0>D",76,32)
		var_Element1.AutoSize = .f.
		var_Element1.Height = 32
var_Links = oSwimLane.Links
	var_Link = var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))
		var_Link.StartPos = 1
		var_Link.EndPos = 1
	var_Link1 = var_Links.Add(oSwimLane.Elements.item(2),oSwimLane.Elements.item(1))
		var_Link1.StartPos = 1
		var_Link1.EndPos = 1
	var_Links.Add(oSwimLane.Elements.item(3),oSwimLane.Elements.item(4))
	var_Link2 = var_Links.Add(oSwimLane.Elements.item(4),oSwimLane.Elements.item(3))
		var_Link2.StartPos = 0
		var_Link2.EndPos = 2
oSwimLane.ShowLinks = 97 'exShowCrossLinksMixt + exShowExtendedLinks

45:
How do I enable the cross link support ( triangular )

Dim oSwimLane as P
Dim var_Element as P
Dim var_Element1 as P
Dim var_Elements as P
Dim var_Link as P
Dim var_Link1 as P
Dim var_Link2 as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",0,76)
	var_Element = var_Elements.Add("Element <sha ;;0>C",-76,32)
		var_Element.AutoSize = .f.
		var_Element.Height = 32
	var_Element1 = var_Elements.Add("Element <sha ;;0>D",76,32)
		var_Element1.AutoSize = .f.
		var_Element1.Height = 32
var_Links = oSwimLane.Links
	var_Link = var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))
		var_Link.StartPos = 1
		var_Link.EndPos = 1
	var_Link1 = var_Links.Add(oSwimLane.Elements.item(2),oSwimLane.Elements.item(1))
		var_Link1.StartPos = 1
		var_Link1.EndPos = 1
	var_Links.Add(oSwimLane.Elements.item(3),oSwimLane.Elements.item(4))
	var_Link2 = var_Links.Add(oSwimLane.Elements.item(4),oSwimLane.Elements.item(3))
		var_Link2.StartPos = 0
		var_Link2.EndPos = 2
oSwimLane.ShowLinks = 65 'exShowCrossLinksTriangle + exShowExtendedLinks

44:
How do I enable the cross link support ( rectangular )

Dim oSwimLane as P
Dim var_Element as P
Dim var_Element1 as P
Dim var_Elements as P
Dim var_Link as P
Dim var_Link1 as P
Dim var_Link2 as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",0,76)
	var_Element = var_Elements.Add("Element <sha ;;0>C",-76,32)
		var_Element.AutoSize = .f.
		var_Element.Height = 32
	var_Element1 = var_Elements.Add("Element <sha ;;0>D",76,32)
		var_Element1.AutoSize = .f.
		var_Element1.Height = 32
var_Links = oSwimLane.Links
	var_Link = var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))
		var_Link.StartPos = 1
		var_Link.EndPos = 1
	var_Link1 = var_Links.Add(oSwimLane.Elements.item(2),oSwimLane.Elements.item(1))
		var_Link1.StartPos = 1
		var_Link1.EndPos = 1
	var_Links.Add(oSwimLane.Elements.item(3),oSwimLane.Elements.item(4))
	var_Link2 = var_Links.Add(oSwimLane.Elements.item(4),oSwimLane.Elements.item(3))
		var_Link2.StartPos = 0
		var_Link2.EndPos = 2
oSwimLane.ShowLinks = 33 'exShowCrossLinksRect + exShowExtendedLinks

43:
How do I show a link frmo bottom to top, or reverse, not from left to right

Dim oSwimLane as P
Dim var_Elements as P
Dim var_Link as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",0,64)
var_Links = oSwimLane.Links
	var_Link = var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))
		var_Link.StartPos = 1
		var_Link.EndPos = 1

42:
Is it possible to control the links, so that they are always centered

Dim oSwimLane as P
Dim var_Element as local
Dim var_Element1 as local
Dim var_Element2 as local
Dim var_Element3 as local
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	' var_Elements.Add("Element A").ID = "A"
	var_Element = var_Elements.Add("Element A")
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.ID = `A`"

	' var_Elements.Add("Element B").ID = "B"
	var_Element1 = var_Elements.Add("Element B")
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.ID = `B`"

	' var_Elements.Add("Element C").ID = "C"
	var_Element2 = var_Elements.Add("Element C")
	oSwimLane.TemplateDef = "dim var_Element2"
	oSwimLane.TemplateDef = var_Element2
	oSwimLane.Template = "var_Element2.ID = `C`"

	' var_Elements.Add("Element D").ID = "D"
	var_Element3 = var_Elements.Add("Element D")
	oSwimLane.TemplateDef = "dim var_Element3"
	oSwimLane.TemplateDef = var_Element3
	oSwimLane.Template = "var_Element3.ID = `D`"

var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("B"))
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("C"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("D"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("C"))
oSwimLane.ShowLinks = -1
oSwimLane.Template = "DefArrange(0) = 1" // oSwimLane.DefArrange(0) = 1
oSwimLane.Arrange()

41:
What options to align the elements do I have if I use Arrange method

Dim h1 as 
Dim h2 as 
Dim h3 as 
Dim oSwimLane as P
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.ShowGridLines = .t.
var_Elements = oSwimLane.Elements
	h1 = var_Elements.Add("Top Alignment").ID
	var_Elements.Add("Element")
	var_Elements.Add("Element")
	var_Elements.Add("Element")
	h2 = var_Elements.Add("Center Alignment",,96).ID
	var_Elements.Add("Element",,96)
	var_Elements.Add("Element",,96)
	var_Elements.Add("Element",,96)
	h3 = var_Elements.Add("Bottom Alignment",,178).ID
	var_Elements.Add("Element",,192)
	var_Elements.Add("Element",,192)
	var_Elements.Add("Element",,192)
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))
	var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(3))
	var_Links.Add(oSwimLane.Elements.item(2),oSwimLane.Elements.item(4))
	var_Links.Add(oSwimLane.Elements.item(2),oSwimLane.Elements.item(3))
	var_Links.Add(oSwimLane.Elements.item(5),oSwimLane.Elements.item(6))
	var_Links.Add(oSwimLane.Elements.item(5),oSwimLane.Elements.item(7))
	var_Links.Add(oSwimLane.Elements.item(6),oSwimLane.Elements.item(8))
	var_Links.Add(oSwimLane.Elements.item(6),oSwimLane.Elements.item(7))
	var_Links.Add(oSwimLane.Elements.item(9),oSwimLane.Elements.item(10))
	var_Links.Add(oSwimLane.Elements.item(9),oSwimLane.Elements.item(11))
	var_Links.Add(oSwimLane.Elements.item(10),oSwimLane.Elements.item(12))
	var_Links.Add(oSwimLane.Elements.item(10),oSwimLane.Elements.item(11))
oSwimLane.Template = "DefArrange(3) = 0" // oSwimLane.DefArrange(3) = 0
oSwimLane.Arrange(h1)
oSwimLane.Template = "DefArrange(3) = 1" // oSwimLane.DefArrange(3) = 1
oSwimLane.Arrange(h2)
oSwimLane.Template = "DefArrange(3) = 2" // oSwimLane.DefArrange(3) = 2
oSwimLane.Arrange(h3)
oSwimLane.EndUpdate()

40:
Is there an auto-arrange feature that will display the flow-chart centered and zoomed correctly after we are finished building it

Dim oSwimLane as P
Dim var_Element as local
Dim var_Element1 as local
Dim var_Element2 as local
Dim var_Element3 as local
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	' var_Elements.Add("Element A").ID = "A"
	var_Element = var_Elements.Add("Element A")
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.ID = `A`"

	' var_Elements.Add("Element B").ID = "B"
	var_Element1 = var_Elements.Add("Element B")
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.ID = `B`"

	' var_Elements.Add("Element C").ID = "C"
	var_Element2 = var_Elements.Add("Element C")
	oSwimLane.TemplateDef = "dim var_Element2"
	oSwimLane.TemplateDef = var_Element2
	oSwimLane.Template = "var_Element2.ID = `C`"

	' var_Elements.Add("Element D").ID = "D"
	var_Element3 = var_Elements.Add("Element D")
	oSwimLane.TemplateDef = "dim var_Element3"
	oSwimLane.TemplateDef = var_Element3
	oSwimLane.Template = "var_Element3.ID = `D`"

var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("B"))
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("C"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("D"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("C"))
oSwimLane.Arrange()

39:
Is it possible to change the distance between elements, when calling the Arrange method

Dim oSwimLane as P
Dim var_Element as local
Dim var_Element1 as local
Dim var_Element2 as local
Dim var_Element3 as local
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	' var_Elements.Add("Element A").ID = "A"
	var_Element = var_Elements.Add("Element A")
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.ID = `A`"

	' var_Elements.Add("Element B").ID = "B"
	var_Element1 = var_Elements.Add("Element B")
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.ID = `B`"

	' var_Elements.Add("Element C").ID = "C"
	var_Element2 = var_Elements.Add("Element C")
	oSwimLane.TemplateDef = "dim var_Element2"
	oSwimLane.TemplateDef = var_Element2
	oSwimLane.Template = "var_Element2.ID = `C`"

	' var_Elements.Add("Element D").ID = "D"
	var_Element3 = var_Elements.Add("Element D")
	oSwimLane.TemplateDef = "dim var_Element3"
	oSwimLane.TemplateDef = var_Element3
	oSwimLane.Template = "var_Element3.ID = `D`"

var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("B"))
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("C"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("D"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("C"))
oSwimLane.Template = "DefArrange(1) = 0" // oSwimLane.DefArrange(1) = 0
oSwimLane.Template = "DefArrange(2) = 0" // oSwimLane.DefArrange(2) = 0
oSwimLane.Arrange()

38:
How do I organize vertically the elements

Dim oSwimLane as P
Dim var_Element as local
Dim var_Element1 as local
Dim var_Element2 as local
Dim var_Element3 as local
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	' var_Elements.Add("Element A").ID = "A"
	var_Element = var_Elements.Add("Element A")
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.ID = `A`"

	' var_Elements.Add("Element B").ID = "B"
	var_Element1 = var_Elements.Add("Element B")
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.ID = `B`"

	' var_Elements.Add("Element C").ID = "C"
	var_Element2 = var_Elements.Add("Element C")
	oSwimLane.TemplateDef = "dim var_Element2"
	oSwimLane.TemplateDef = var_Element2
	oSwimLane.Template = "var_Element2.ID = `C`"

	' var_Elements.Add("Element D").ID = "D"
	var_Element3 = var_Elements.Add("Element D")
	oSwimLane.TemplateDef = "dim var_Element3"
	oSwimLane.TemplateDef = var_Element3
	oSwimLane.Template = "var_Element3.ID = `D`"

var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("B"))
	var_Links.Add(oSwimLane.Elements.item("A"),oSwimLane.Elements.item("C"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("D"))
	var_Links.Add(oSwimLane.Elements.item("B"),oSwimLane.Elements.item("C"))
oSwimLane.ShowLinksType = 2
oSwimLane.Template = "DefArrange(0) = 1" // oSwimLane.DefArrange(0) = 1
oSwimLane.Arrange()

37:
How can I add programatically a link

Dim oSwimLane as P
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",96,24)
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))

36:
How do I get the link from the cursor
' Occurs when the user moves the mouse.
function MouseMove as v (Button  as  N,Shift  as  N,X  as  OLE::Exontrol.SwimLane.1::OLE_XPOS_PIXELS,Y  as  OLE::Exontrol.SwimLane.1::OLE_YPOS_PIXELS)
	Dim l as P
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
	l = oSwimLane.LinkFromPoint(-1,-1)
	? l 
end function

Dim oSwimLane as P
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element <sha ;;0>A")
	var_Elements.Add("Element <sha ;;0>B",96,24)
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(2))

35:
Is there a way to create a link which has the same start and end element

Dim oSwimLane as P
Dim var_Elements as P
Dim var_Links as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Elements.Add("Element")
var_Links = oSwimLane.Links
	var_Links.Add(oSwimLane.Elements.item(1),oSwimLane.Elements.item(1))

34:
How can I show the pool's caption not-rotated or mirrored

Dim oSwimLane as P
Dim var_Lanes as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.AllowDesignHeader = 4
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	var_Pool.HeaderCaptionSupportRotate = .f.
	' var_Pool.HeaderSize(0) = 48
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(0) = 48"

	' var_Pool.HeaderSize(2) = 48
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(2) = 48"

	' var_Pool.Lane(0).Children.Count = 3
	var_Lanes = var_Pool.Lane(0).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 3"

oSwimLane.EndUpdate()

33:
How can I prevent creating sub-lanes or sub-phases

Dim oSwimLane as P
Dim var_Lanes as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.AllowDesignHeader = 4
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	' var_Pool.HeaderSize(0) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(0) = 32"

	' var_Pool.HeaderSize(2) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(2) = 32"

	' var_Pool.Lane(0).Children.Count = 3
	var_Lanes = var_Pool.Lane(0).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 3"

oSwimLane.EndUpdate()

32:
How do I show a complete frame/border around the header

Dim oSwimLane as P
Dim var_Lanes as P
Dim var_Pattern as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	' var_Pool.HeaderSize(1) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(1) = 32"

	' var_Pool.HeaderSize(3) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(3) = 32"

	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		' var_Lanes.item(1).Header.Pattern.Type = 768
		var_Pattern = var_Lanes.item(1).Header.Pattern
		oSwimLane.TemplateDef = "dim var_Pattern"
		oSwimLane.TemplateDef = var_Pattern
		oSwimLane.Template = "var_Pattern.Type = 768"

oSwimLane.EndUpdate()

31:
How do I show a complete frame/border around the lane

Dim oSwimLane as P
Dim var_Lanes as P
Dim var_Pattern as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,150)
	' var_Pool.HeaderSize(1) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(1) = 32"

	' var_Pool.HeaderSize(3) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(3) = 32"

	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		' var_Lanes.item(1).Pattern.Type = 768
		var_Pattern = var_Lanes.item(1).Pattern
		oSwimLane.TemplateDef = "dim var_Pattern"
		oSwimLane.TemplateDef = var_Pattern
		oSwimLane.Template = "var_Pattern.Type = 768"

oSwimLane.EndUpdate()

30:
How can I define sub-lanes

Dim oSwimLane as P
Dim var_Lanes as P
Dim var_Lanes1 as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,250)
	' var_Pool.HeaderSize(1) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(1) = 32"

	' var_Pool.HeaderSize(3) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(3) = 32"

	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		' var_Lanes.item(1).Children.Count = 2
		var_Lanes1 = var_Lanes.item(1).Children
		oSwimLane.TemplateDef = "dim var_Lanes1"
		oSwimLane.TemplateDef = var_Lanes1
		oSwimLane.Template = "var_Lanes1.Count = 2"

oSwimLane.EndUpdate()

29:
How can I add default lanes when the user creates a new pool
' A new pool has been added to the surface.
function AddPool as v (Pool  as  OLE::Exontrol.SwimLane.1::IPool)
	' Pool.HeaderSize(1) = 24
	' Pool.HeaderVisible(0) = False
	' Pool.HeaderVisible(1) = True
	' Pool.HeaderVisible(2) = False
	' Pool.HeaderVisible(3) = False
	' Pool.Lane(1).Children.Count = 2
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.Pools.Add(-100,-100,250,250)
oSwimLane.EndUpdate()

28:
How do I prevent showing headers when the user creates new pools

' A new pool has been added to the surface.
function AddPool as v (Pool  as  OLE::Exontrol.SwimLane.1::IPool)
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oSwimLane as P
Dim var_Lanes as local

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
' oSwimLane.Pools.Add(-100,-100,250,250).Lane(0).Children.Count = 3
var_Lanes = oSwimLane.Pools.Add(-100,-100,250,250).Lane(0).Children
oSwimLane.TemplateDef = "dim var_Lanes"
oSwimLane.TemplateDef = var_Lanes
oSwimLane.Template = "var_Lanes.Count = 3"

oSwimLane.EndUpdate()

27:
How can I display icons on headers

Dim oSwimLane as P
Dim var_HeaderLane as local
Dim var_HeaderLane1 as local
Dim var_HeaderLane2 as local
Dim var_Lanes as P
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.Images("gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTqlVq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yNAOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=")
var_Pool = oSwimLane.Pools.Add(-100,-100,250,250)
	' var_Pool.HeaderVisible(0) = .f.
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderVisible(0) = False"

	' var_Pool.HeaderVisible(2) = .f.
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderVisible(2) = False"

	' var_Pool.HeaderVisible(3) = .f.
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderVisible(3) = False"

	' var_Pool.HeaderSize(1) = 24
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(1) = 24"

	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		' var_Lanes.item(0).Header.Caption = "<img>1</img> A"
		var_HeaderLane = var_Lanes.item(0).Header
		oSwimLane.TemplateDef = "dim var_HeaderLane"
		oSwimLane.TemplateDef = var_HeaderLane
		oSwimLane.Template = "var_HeaderLane.Caption = `<img>1</img> A`"

		' var_Lanes.item(1).Header.Caption = "<img>2</img> B"
		var_HeaderLane1 = var_Lanes.item(1).Header
		oSwimLane.TemplateDef = "dim var_HeaderLane1"
		oSwimLane.TemplateDef = var_HeaderLane1
		oSwimLane.Template = "var_HeaderLane1.Caption = `<img>2</img> B`"

		' var_Lanes.item(2).Header.Caption = "<img>3</img> C"
		var_HeaderLane2 = var_Lanes.item(2).Header
		oSwimLane.TemplateDef = "dim var_HeaderLane2"
		oSwimLane.TemplateDef = var_HeaderLane2
		oSwimLane.Template = "var_HeaderLane2.Caption = `<img>3</img> C`"

oSwimLane.EndUpdate()

26:
How do I change the Lane and Phase strings being displayed on the lanes

Dim oSwimLane as P
Dim var_HeaderLane as local
Dim var_Lanes as local
Dim var_Lanes1 as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.Template = "DefPoolHeaderCaptionFormat(True) = `<fgcolor 808080>Faza <off -4><b><font ;6>%i`" // oSwimLane.DefPoolHeaderCaptionFormat(.t.) = "<fgcolor 808080>Faza <off -4><b><font ;6>%i"
oSwimLane.Template = "DefPoolHeaderCaptionFormat(False) = `<fgcolor 808080>Culoar <off -4><b><font ;6>%i`" // oSwimLane.DefPoolHeaderCaptionFormat(.f.) = "<fgcolor 808080>Culoar <off -4><b><font ;6>%i"
var_Pool = oSwimLane.Pools.Add(-100,-100,250,250)
	' var_Pool.Lane(0).Children.Count = 3
	var_Lanes = var_Pool.Lane(0).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 3"

	' var_Pool.Lane(1).Children.Count = 3
	var_Lanes1 = var_Pool.Lane(1).Children
	oSwimLane.TemplateDef = "dim var_Lanes1"
	oSwimLane.TemplateDef = var_Lanes1
	oSwimLane.Template = "var_Lanes1.Count = 3"

	' var_Pool.Lane(1).Children.item(1).Header.Caption = "<fgcolor FF0000><b>NEW"
	var_HeaderLane = var_Pool.Lane(1).Children.item(1).Header
	oSwimLane.TemplateDef = "dim var_HeaderLane"
	oSwimLane.TemplateDef = var_HeaderLane
	oSwimLane.Template = "var_HeaderLane.Caption = `<fgcolor FF0000><b>NEW`"

oSwimLane.EndUpdate()

25:
How can I enlarge the node while AutoSize property is True (method 2)

Dim oSwimLane as P
Dim var_Element as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "Background(90) = 16777215" // oSwimLane.Background(90) = 16777215
var_Element = oSwimLane.Elements.Add("Element",0,0).Copy()
	var_Element.Caption = "Enlarged Element"
	var_Element.InflateSize = 16

24:
How can I enlarge the node while AutoSize property is True (method 1)

Dim oSwimLane as P
Dim var_Element as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "Background(90) = 16777215" // oSwimLane.Background(90) = 16777215
var_Element = oSwimLane.Elements.Add("Element",0,0).Copy()
	var_Element.Caption = "Enlarged Element"
	' var_Element.Padding(-1) = 16
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.Padding(-1) = 16"


23:
How can I get the lane of the element

Dim lane as 
Dim oSwimLane as P
Dim var_Element as P
Dim var_Lanes as local

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
' oSwimLane.Pools.Add(-150,-150,500,250).Lane(0).Children.Count = 3
var_Lanes = oSwimLane.Pools.Add(-150,-150,500,250).Lane(0).Children
oSwimLane.TemplateDef = "dim var_Lanes"
oSwimLane.TemplateDef = var_Lanes
oSwimLane.Template = "var_Lanes.Count = 3"

var_Element = oSwimLane.Elements.Add("Element")
	var_Element.CenterOnLane(.f.)
	lane = var_Element.LaneID(.f.)
	? oSwimLane.LaneByID(lane).Header.Caption 
oSwimLane.EndUpdate()

22:
How can I define a different shape for elements

' A new element has been added to the surface.
function AddElement as v (Element  as  OLE::Exontrol.SwimLane.1::IElement)
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
end function

Dim oSwimLane as P
Dim var_Appearance as P
Dim var_Element as local
Dim var_Element1 as local
Dim var_Element2 as local
Dim var_Element3 as local
Dim var_Element4 as P
Dim var_Element5 as P
Dim var_Element6 as P
Dim var_Element7 as P
Dim var_Element8 as P
Dim var_Elements as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"gBFLBCJwBAEHhEJAAChABAQDg6AADACAxRDQNABQKAAzQFAYahuHKGAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQwDiAUIjIK8IhkGIcZAGIBJCjWGodQLOEgwHIERQjEyUJAGGYqEjaO41SpAdI0PCxUScACnDQiegJRgmQ4cTJSchSAKENx1JaeYReewwAqNd5TRwNIiydZUIhqGC1YRte4ZWiCWoJVzSVDLfbgAT4X60IIlCi5Mi6MIgDZJFDUNLUdRBMKNJ7qagaWoWOaQRbmAQQTRYLQ/TiEXZDQRAAyLJIWVRQWTAAKVbw1LiEcznGCcejzIIDaZpOh4DplWzTOgALjta4IRpvNwAbIAF4gBqsLyXXLcdQyORMiwbxZgSDhgnQbJFC6F5JhECA8CADwIgMeQnmoQJlh0eAfGcXYZjwccOHiWx/moAJ6jed4DC2dJnnmQRxBcKABBoWAcHULZLHyV4mmGOx0FmdpZAMAgQhEQBpBiRxBlQcgZFUdAMEYAxQDECBNgaUYglkCQKBGZANk0QgBgQXAQgcGI0FwJAHA6WI+DGDAjCiVg0g2Yw4mYNg7E0eJ1H+DpkAiYhBg6JApBYRMvDkJhGhKJIImEA4QledZ8H+FJlEEQhWBAJa8loRoCgkdhYBAExZHQKIXmUYRCFQI5mgWfZ4hMJpJC4boTGcCY0m0QJVBAIh2EIZZ5H4VIVAqeZ1H8M5oAmSg7g8TR1n4fQrmUQZCgqF5eEmYhYBgKQJiCD4PmaegKhWJZnAQDZkhqaYKFocYnGadZ8h+KJoiGQhfEIURAmKEAYAgeo1H8OZrAoeoyhGKYngaHInmuCpOjmKAkHMHo+iiSZxmKQoXkGCwWigRQlnqLh7jKSh7DYUYzm0CgAk+DIrFCAo3i6LYKnKWYuk6Wp4keKIqDsLh7BYLhJmaZo5mcYAijAOZtFsXpajubZLG6co8CSShtnYeJrGeVpzjwbxLnafI/mcK5ZnmPgtGuap+j6cIMB8CocDAK43AaQAwjwJwQkSaZsDcBI7jETBHBqRhxkibwWkCMQsgcG5Ii2TB+nkN5yEyJwjkqcJMh8DpKDKTIrB2TBmnyGwFkwMw8mcMpOmQbJbBiTwziyUxBDsc5sD8QJRnQKprEWTg0g0DxNlKMpsF8RpSHUTQ7BuUp0n0VxZi4MxrDSJ40DYDYHGKWJ2E2FxmyADYnGqMRBgeYh0FOLh9kccpcncJsVw7RdjvA2M4eovRmCSFkMwQIoAQEBA")
	var_Appearance.Add(2,"gBFLBCJwBAEHhEJAAChABAIDg6AADACAxRDQNABQKAAzQFAYaBmG6GAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQ1DAAUIjKLMIhmGAYJAGIBJCjWGodQLOEgwHIERQjEyUpIyVAkYw5HqNaQjICoJoSOwAU47IaCIAFJSpCygKKgSjhRpoAAyU5IUgVPC4XSbD6zYDqapaTheEQyDSJNr3DCMUTlFYYLrmaQKMhqZJhWjbFSWXUpJ4pSrLMIyfTwZRJGzIK7jabLIjaP6GUDhVaYbRUL46CiEb5AAJsVpCCZrYRJOYVdQeDYbQCNLDhHQIDqaA6kZRAdQ2bpMBznPSvbovDgLWhGYqhbLCNibRC+d4HNrCYIlCjpMw3CYGIOHOMRsm0OxFjSZppneHQNFcSwRAOaprjqY4dgYe4VgGWwADucRuHYCpdByYROH8AAOC8D4NgEXwYBWEZyGAWoHg2MRCECBAkFAGhGDGUB1ByBhQkUIAPgCRAMEIExhIuNhCEKBAlnAcwQgAYQXAIIRWEUFwJAGQ42CiCoihiLgugsYwDjSZ4MkICJWCaDZjgiZg6EIQQInSV4PmKeIyEKEBkBQDhEgwZBzjSd4SlEQJgk+E5khkRhIhSZA5FIUoVGWCQkl+FpkliTJnhXSYaFaGJOlEIhmC2ZoJgIZIaiWGYuG62IpDyT4TGSM5eGyCpmCnPIcCeQg+H6HZmnoAh6iAaBDjSL4hkUCgmgKHhlHmeIPh8BwKAqEohGkOgOHCI4pAmMoMhUKByj6CQUCkWoGhSKJpGkJoQiOJR6G4cYTmcSQuiKKRqEqPovhmBIJiCN4YEACQGFsN5lliToyiwbAKkKQoSGcWQ2HKERrhiJJvjLUR8leL5sDsBpQiUZZpDaO4eAACZWh+LYtDsSpejQbmJnIEAuEsLJvECRgLiSH46m2W4Gl+OxpFqWo0ECSR7lQaI9m8C4+nqO4uAIHp+B4MAJmcAAeC+YgenmPwwHwHInkKRYMDaWIQGmeh3AmPpxDsCJHkWbhBAIdZDmMGZXBmRZMHwVwikUIwam0MAMC4awiEmOYyHsXwkkIMp5jMLBMDKaRiiqEBsmkNwpkwc5MyiHRrEKfxCiobIaFsQgvmsTBvD2SJuAwNBYkKSh6GsRYbDUDQ7EyVZmEwDwFiKdQ6BQf5XnYDRjD6IIujIfppBgKRcl6BZZnYXYLBWLYpn0KpglqLAtAIZoOneBsZw9RJjnQ+AYQAgCAg=")
	var_Appearance.Add(3,"gBFLBCJwBAEHhEJAAChABQsMACAADACAxRDQNABQKAAzQFAYawLBgABhGUZoJhUAIIRZGMIjFDcEwxC6NIpAWCYQgUNQCQiNAzxAKQchhD4ZAIkGY4ZhyA42SBAcbyDCEShoGqPRhmCg5UjmM4oQLSFDULC0fSBBIYaSGEY5QoqIYfArGQYQTRUPyUdoOBIACwLChWLA1CTZdowSKoYTXBq3IgqerIapmSYaV7YNh3VY1IR/JSVJYlaYJDoyNI4ThHc5xVLtfSfAiiJrxOKcTAAFJ0QKFUbRUz+OgBTpvaZxagaSpSG5WRpWEI5PAdN4zTa7YDsS67FiSG5oWpEFq2eAGdzlVLMMqhG5gAxqNKzbLfMCXfJIbyrBIcYLoXItCqFYskMTwxlgAY+haFZRlQZQ4HwHR3AoMx5jEch2lMfZGl8eY+jYXBvBsAAHFeRQDmuRR8nsSI2CoEgIEIRQBiQYwdAcUZIGUUIQhGGAGECRAhDYChGFERAMCgQheEcGQgHkEAwkICx2BCFoAj+B5iAiBgigiYhIgid4JkIQBwm2ChijiKgsguYpokYLYMmKQIiDYDgjgEAg6g6Y5InYPoPmOIAiEKEJFgkFIvhGYwIlIMoSTmAhOGgJJJC4UoSiUSIcncKZlp8WoOAOAxeF6FBlEkNhPGcZgJhYU4ZiMMweGoDAmkGfhuhWJoJDgIIUCYeZWGGHYkhkWhuB+ZYhEIcIUmcKZSHeIJmgoFgyCeaIBgKCoYCgGYSHiI5oEoQgsiKBgKCCH4SOAfoGiQaZKPmJ5jGCIJniiZgpk6DonGkKomgOHpnjqFoCiaawKioSYXg0eoGi6KZrBqIo6hgEIal6GosiwCpuDIBgsEqDJniYa4bVuFYkDqepKjCLQJiiR4XCyawGk+JpGgsZIXjabRbEKV4disSYwDCH5OlsIpWjmaA5HKUomCYOp+l6OgkhoUoWiMLpbH6bw7G0KRynOHYuGuXobhWB4MAaaoaimO52naB4hnkYInhERYLBAGAhnECw+H2BwhkmSg7kMMIqHyb49hAECAg=")
	var_Appearance.Add(4,"gBFLBCJwBAEHhEJAAChABOIDg6AADACAxRDQNABQKAAzQFAYaBqGCGAAGEZRSgmFgAQhFcZQTCsBw7DCEYxjOAwFgmEQxDIOIBQSKYcwiGQaRrkIYgEiONoaR7HchSFIcIxPFKRBhkKYocjyG5GRoBcIyXAcRSYAB2Q4ESoKShePw5UDTcCzHR8RxEDKNRLpOQbDgOUZTWbVUaDKIsXzZCKHbZhG4YRp6CZKRpYEB1bYtKTRKqLKrpeTbOoSHolTbiIATTYlG4THyEZQrDIaDjOSIXZaGFzwSDWGgBJ60bRwHIaAxGWoHRxfEZVfBONQHMSBc5xa64JyHAImWrcUbWfaYYZ0AC6MRkK8cXABPQANixKZsCizE4DDbTYzjRheC2F4nnEOJRG0BRXEWOICEocByiyCJTiQOJVGYIQ8gofpDgsG5uF+ah6D2Xp+GGP5gkCfwRHofwOnuSB2heVpZnIUZQhAIQJBQBoRgwdAdEcIYVEIQhGGAMQDBCBJYEUGgNhCEMcHsXIkCIAAMIILQWAkAZDjYJIJiIWIeCqCRMHiNI/guYwIkYMoMmMSJWDaDZjgiTIzg6Yo4iIPoPGIdAmECChiFKXhGAQJIAmISgQCSSQ2E6E5lAkRhShSZRJFQOoVkCaRkAqFpQhIPhehCY54hYQoRCOYo+GaExOnmJhghqZhJjIYYbmaaJ0l+HJkiCYgtDGY5RkIegfmeSY6GOD4MnoBh1D2aBJkYbYhmcCgigaIhOloEJ3h0aATD4bgWCkQoehaGAnniHhNgwKI6HaConmiSYCF4I5niGQoLDmaoAiKKoaE6eJ2H+HZnFoeohigKwqCwGItmqA4ejIHgrkIHo+iuEA4h6PGMmIHo1i0LIKk6SoMCSWwcm2LAkisAAAgmQgLFYcw3myaxmkmG4GgsdIXjebYjjaVQIC0eQFAONADguBpqjaaIKlwGIuG4GwOkWOYAAqDoljqbIrmIJ41m4O5iGYK5FAwBp0ikag7mqbI+GoCwyEyPgpBCQwOj0KRBGKFgpnAbAjXWMQ8EaeIuG6a5SHWHZxFyBoIjEbA8FQCJJmiZAmmOORwHyCwXgkbwqn8LYoDKOZNAmJpinyOzTm8aZrBWH5QhGAxCCedBMm8L5Fi+fAEFCPgvksVp0h8NQBn8RpLi7NQKBALxLHyF43EaDRPDOMoxkqXp4kYaRLlMTQIDWbQeguR5iluBxCBgNBCH6dIJnaSZjF+LQZgGQSh5DOFEa4dQsi5GILsaA8ReBuHoEYZ4ZwkDFFwJEYo2grjcHOFUAoFA7gJFqFEDYrQyilC+PwNgyRBBLH4C8FIzxiD8CeBYEgUQ9CtAiEwYgtQyDqDWPUTjBhXBrCmAcKoJQ6iGF6DEMA8BpieA4BgMQdxDg9GSOkLQgRCjhHiDMV4Ewfh3AoGULIiBujRAuJ0c4+gEi4ASOkRAfhWgjCKKEFACCAg")
	var_Appearance.Add(5,"gBFLBCJwBAEHhEJAAChABGgDg6AADACAxRDQNABQKAAzQFAYZBwGiGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJAKCQ3DTJUBjIKcIhiGsgAzAJIUaw1DqGY7nKZoRioAIoSAMM7DCKUQSLGyQZqBSCQGjsAI+OyHAiABSNJwtHygIRoKqqHg2PoiSAEUZhdRlHShKSqLQiaIRSDUJZsW5EIyjBZ8EznOqbJApOKrCgOTYaWbUdSxPTEUwTFiXJgmKRKIoiOAAY7IEgSFLsThrIKha5yDI4bxyAwXQjeYABbY0E4HQarcqzCrKGp/HYJXyAGgQHYkB5JAaQMBtGpoJrCeKQXDdVyXFwdET1BLZQA2HeUTTRVCScqnaTMZh8DgGxniKfYbngAxFkmVJAnSdougwDhRlMGZ1GEPR9HQapDGWWhyCMe4ugQDx9naYRvm6cQfAUJ47m8cofBYAZOGCHg2mETgCBCERAGkGJHEGVByBkUwUCSIgChAMQIE2BJRiQVQDAoEIWlWIxOgGBBcGyBQYlQXAkAcDpYh4KYKCKKI2CyC5ijONJvgySZ4lQWINkKCJmCWDpjkQaJPg+UA4joMYQiQI4eEYHAkgAYhKBgJJCh43JlAkEgwhSJA5E4VoVE6UQCFoL5lkkBhXhUCR5gYOQKAieYUneGZlEmJhfhqZYJFIWgQCWQp+F6GxigmHJ3BoJ4JmYMw7maKZSH6HxoAiQhvhwZ1VHYFAogmBIXiAZ55jKDIQgeChGG+G5BAoVJHiWaBYkIecznoOoeiMZYCj6IoYmcGhckeCophONoKh4aZagKLYrGkEZggeLJkCmThGDmZg5m6L4nmuOoCHaGJNnsBooAAIopCAcIZEiep2kqLwpnqCIviIBQLA4dolEECZakuK4sksYhYAgLZLOsQJLHuBBIjibR7haWYfGwawhAOJpmBuGpajuJRJkYbxAmgORynCOZvgqApejcAgIG4OYUA0e5em+PhokQXhKAYKx8AsCo+FEcJDA6D5MnwLwDkTWJulQQJuDEIphC2cQsHYbJEDCYJBAOLBrDIHwekUMBIiITgpmMcRhAOKYDgyRwnkyYwMjcK4cnAfAnCmSgzkoGhnkGZ45k6SIxjMTPIFCZOZEKSBxA0Fpui2b5LFoKIqGoaY/FKUY1gmdpQjOKxbBIV4zi0DQ6nmOhmFkUophCLILEMV5YiWCZkH+W5nl2HxfiiMwQmMTZOmqLhaLsx9iUH6JAMI1hCDjECFQawhghjBG2DseoGQzhNHwDwTAMAsgTEeCUZI1Q5jFHyLodYmWxB8GsPEVIPwxhSD6Awb4dgJD2HsAQQIoAQEB")
oSwimLane.Template = "Background(90) = 16777215" // oSwimLane.Background(90) = 16777215
var_Elements = oSwimLane.Elements
	' var_Elements.Add("Rectangular",0,0).Shape = 0
	var_Element = var_Elements.Add("Rectangular",0,0)
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.Shape = 0"

	' var_Elements.Add("Round",82,0).Shape = 1
	var_Element1 = var_Elements.Add("Round",82,0)
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.Shape = 1"

	' var_Elements.Add("Rhomb",138,0).Shape = 2
	var_Element2 = var_Elements.Add("Rhomb",138,0)
	oSwimLane.TemplateDef = "dim var_Element2"
	oSwimLane.TemplateDef = var_Element2
	oSwimLane.Template = "var_Element2.Shape = 2"

	' var_Elements.Add("Circle",196,0).Shape = 3
	var_Element3 = var_Elements.Add("Circle",196,0)
	oSwimLane.TemplateDef = "dim var_Element3"
	oSwimLane.TemplateDef = var_Element3
	oSwimLane.Template = "var_Element3.Shape = 3"

	var_Element4 = var_Elements.Add("EBN 1",0,36)
		var_Element4.BackColor = 16777216
		var_Element4.Border = -1
	var_Element5 = var_Elements.Add("EBN 2",54,36)
		var_Element5.BackColor = 33554432
		var_Element5.Border = -1
	var_Element6 = var_Elements.Add("EBN 3",108,36)
		var_Element6.BackColor = 50331648
		var_Element6.Border = -1
	var_Element7 = var_Elements.Add("EBN 4   ",160,36)
		var_Element7.BackColor = 67108864
		var_Element7.Border = -1
	var_Element8 = var_Elements.Add("EBN 5 ",220,36)
		var_Element8.BackColor = 83886080
		var_Element8.MinHeight = 64
		var_Element8.MinWidth = 64
		var_Element8.Border = -1
oSwimLane.Template = "ScrollPos(False) = -160" // oSwimLane.ScrollPos(.f.) = -160
oSwimLane.EndUpdate()

21:
Is it possible to add an inner control on the surface

' Occurs once an inside control fires an event.
function OleEvent as v (Element  as  OLE::Exontrol.SwimLane.1::IElement,Ev  as  OLE::Exontrol.SwimLane.1::IOleEvent)
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
	? Ev 
end function

Dim oSwimLane as P
Dim var_Element as P
Dim var_Elements as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	var_Element = var_Elements.Add("activex hosting")
		var_Element.Type = 2
		var_Element.Control = "Forms.CommandButton.1"
		var_Element.Caption = "Command Button"
		var_Element.Height = 64
		var_Element.Width = 128
		var_Element.ElementFormat = "14;\"caption\"/\"client\""
		var_Element.CaptionAlign = 1

20:
How can I create a copy of the element
Dim oSwimLane as P
Dim var_Element as local

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "Background(90) = 16777215" // oSwimLane.Background(90) = 16777215
' oSwimLane.Elements.Add("Element 1",0,0).Copy().Caption = "Aka"
var_Element = oSwimLane.Elements.Add("Element 1",0,0).Copy()
oSwimLane.TemplateDef = "dim var_Element"
oSwimLane.TemplateDef = var_Element
oSwimLane.Template = "var_Element.Caption = `Aka`"


19:
How can I define an opaque background for elements

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "Background(90) = 16777215" // oSwimLane.Background(90) = 16777215
oSwimLane.Elements.Add("Element 1",0,0)
oSwimLane.Elements.Add("Element 2",16,16)

18:
How can I show a different context-menu for all elements
' Occurs when the user selects an item from the object's context menu.
function ActionContextMenu as v (Action  as  OLE::Exontrol.SwimLane.1::ContextMenuObjectActionEnum,ObjectType  as  OLE::Exontrol.SwimLane.1::ContextMenuObjectTypeEnum,ObjectID  as  A,CommandID  as  N,CommandChecked  as  L,CommandCaption  as  A,CommandValue  as  A,Cancel  as  L)
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
	? Action 
	? ObjectID 
	? CommandID 
end function

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "ContextMenu(4) = `Item 1[id=1000],Item 2[id=2000]`" // oSwimLane.ContextMenu(4) = "Item 1[id=1000],Item 2[id=2000]"
oSwimLane.Template = "Background(90) = 16777215" // oSwimLane.Background(90) = 16777215
oSwimLane.Elements.Add("Element 1",0,0)
oSwimLane.Elements.Add("Element 2",16,16)

17:
How can I show a different context-menu for element
Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
? oSwimLane.Elements.Add("Element",0,0).InvokeContextMenu("Item 1[id=1000],Item 2[id=2000]") 

16:
How can I change the design-modes being shown on the control's toolbar

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.DesignModes = "Read-Only#0,Allow Any#3,Only-Element#1,Only-Pool#2"

15:
How can I change the default header's background color

Dim oSwimLane as P
Dim var_Lanes as local
Dim var_Lanes1 as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	' var_Pool.Lane(0).Children.Count = 4
	var_Lanes = var_Pool.Lane(0).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 4"

	' var_Pool.Lane(1).Children.Count = 4
	var_Lanes1 = var_Pool.Lane(1).Children
	oSwimLane.TemplateDef = "dim var_Lanes1"
	oSwimLane.TemplateDef = var_Lanes1
	oSwimLane.Template = "var_Lanes1.Count = 4"

oSwimLane.Template = "Background(120) = 65280" // oSwimLane.Background(120) = 65280
oSwimLane.Template = "Background(124) = 49152" // oSwimLane.Background(124) = 49152
oSwimLane.EndUpdate()

14:
How can I remove the Design item from the control's toolbar, to be locked ( no-design )

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.ToolBarFormat = "-1,100,101"
oSwimLane.DesignMode = 0

13:
How can I remove/disable the Color and Display-Grid from the surface's context menu

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "ContextMenu(24) = `Delete[id=-32004](All[id=-32000][ttp=Deletes all the objects from the surface],[sep],Elements[id=-32001][ttp=Deletes all elements from the surface],Links[id=-32002][ttp=Deletes all links from the surface],Pools[id=-32003][ttp=Deletes all pools from the surface])`" // oSwimLane.ContextMenu(24) = "Delete[id=-32004](All[id=-32000][ttp=Deletes all the objects from the surface],[sep],Elements[id=-32001][ttp=Deletes all elements from the surface],Links[id=-32002][ttp=Deletes all links from the surface],Pools[id=-32003][ttp=Deletes all pools from the surface])"

12:
How can I change the element's context-menu when the user right-clicks the element

' Occurs when the user selects an item from the object's context menu.
function ActionContextMenu as v (Action  as  OLE::Exontrol.SwimLane.1::ContextMenuObjectActionEnum,ObjectType  as  OLE::Exontrol.SwimLane.1::ContextMenuObjectTypeEnum,ObjectID  as  A,CommandID  as  N,CommandChecked  as  L,CommandCaption  as  A,CommandValue  as  A,Cancel  as  L)
	' ContextMenuObjectFromID(ObjectType,ObjectID).BackColor = RGB(255,255,0)
	oSwimLane = topparent:CONTROL_ACTIVEX1.activex
	? Action 
	? CommandCaption 
end function

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
oSwimLane.Elements.Add("element",0,0)
oSwimLane.Template = "ContextMenu(4) = `Simple,Value[edit=123],[sep],Popup(Check 1[chk],Check 2[chk=1])`" // oSwimLane.ContextMenu(4) = "Simple,Value[edit=123],[sep],Popup(Check 1[chk],Check 2[chk=1])"
oSwimLane.EndUpdate()

11:
How do I prevent showing the context-menu when user right-clicks the surface
Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "ContextMenu(24) = ``" // oSwimLane.ContextMenu(24) = ""

10:
How do I create parent-child (tree) lanes

Dim oSwimLane as P
Dim var_HeaderLane as local
Dim var_HeaderLane1 as local
Dim var_Lanes as P
Dim var_Lanes1 as P
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	' var_Pool.HeaderSize(1) = 32
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderSize(1) = 32"

	' var_Pool.HeaderVisible(3) = .f.
	oSwimLane.TemplateDef = "dim var_Pool"
	oSwimLane.TemplateDef = var_Pool
	oSwimLane.Template = "var_Pool.HeaderVisible(3) = False"

	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 2
		var_Lanes1 = var_Lanes.item(0).Children
			var_Lanes1.Count = 2
			' var_Lanes1.item(0).Header.Caption = "Phase <b>1.1"
			var_HeaderLane = var_Lanes1.item(0).Header
			oSwimLane.TemplateDef = "dim var_HeaderLane"
			oSwimLane.TemplateDef = var_HeaderLane
			oSwimLane.Template = "var_HeaderLane.Caption = `Phase <b>1.1`"

			' var_Lanes1.item(1).Header.Caption = "Phase <b>1.2"
			var_HeaderLane1 = var_Lanes1.item(1).Header
			oSwimLane.TemplateDef = "dim var_HeaderLane1"
			oSwimLane.TemplateDef = var_HeaderLane1
			oSwimLane.Template = "var_HeaderLane1.Caption = `Phase <b>1.2`"

oSwimLane.EndUpdate()

9:
How do I create a pool with horizontal and lanes

Dim oSwimLane as P
Dim var_Lanes as local
Dim var_Lanes1 as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	' var_Pool.Lane(0).Children.Count = 4
	var_Lanes = var_Pool.Lane(0).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 4"

	' var_Pool.Lane(1).Children.Count = 4
	var_Lanes1 = var_Pool.Lane(1).Children
	oSwimLane.TemplateDef = "dim var_Lanes1"
	oSwimLane.TemplateDef = var_Lanes1
	oSwimLane.Template = "var_Lanes1.Count = 4"

oSwimLane.EndUpdate()

8:
How do I add programatically a pool with horizontal lanes

Dim oSwimLane as P
Dim var_Lanes as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	' var_Pool.Lane(0).Children.Count = 4
	var_Lanes = var_Pool.Lane(0).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 4"

oSwimLane.EndUpdate()

7:
How do I add programatically a pool with vertical lanes

Dim oSwimLane as P
Dim var_Lanes as local
Dim var_Pool as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-250,-150,500,250)
	' var_Pool.Lane(1).Children.Count = 4
	var_Lanes = var_Pool.Lane(1).Children
	oSwimLane.TemplateDef = "dim var_Lanes"
	oSwimLane.TemplateDef = var_Lanes
	oSwimLane.Template = "var_Lanes.Count = 4"

oSwimLane.EndUpdate()

6:
How can I change the toolbar's visual appearance

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.VisualAppearance.Add(1,"c:\exontrol\images\normal.ebn")
oSwimLane.Template = "Background(148) = 16777216" // oSwimLane.Background(148) = 16777216
oSwimLane.Template = "Background(149) = 16777215" // oSwimLane.Background(149) = 16777215
oSwimLane.Template = "Background(150) = 2631720" // oSwimLane.Background(150) = 2631720
oSwimLane.Template = "Background(153) = 23093344" // oSwimLane.Background(153) = 23093344
oSwimLane.Template = "Background(154) = 15790320" // oSwimLane.Background(154) = 15790320
oSwimLane.Template = "Background(155) = 27304096" // oSwimLane.Background(155) = 27304096
oSwimLane.Template = "Background(156) = 16777215" // oSwimLane.Background(156) = 16777215

5:
How can I change the toolbar's background color

Dim oSwimLane as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.Template = "Background(149) = 16777215" // oSwimLane.Background(149) = 16777215

4:
How can I fit or ensure that all elements are in the control's client area
Dim oSwimLane as P
Dim var_Element as local
Dim var_Element1 as local
Dim var_Elements as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
var_Elements = oSwimLane.Elements
	' var_Elements.Add("Element A",-500,-500).BackColor = 65280
	var_Element = var_Elements.Add("Element A",-500,-500)
	oSwimLane.TemplateDef = "dim var_Element"
	oSwimLane.TemplateDef = var_Element
	oSwimLane.Template = "var_Element.BackColor = 65280"

	' var_Elements.Add("Element B",500,500).BackColor = 255
	var_Element1 = var_Elements.Add("Element B",500,500)
	oSwimLane.TemplateDef = "dim var_Element1"
	oSwimLane.TemplateDef = var_Element1
	oSwimLane.Template = "var_Element1.BackColor = 255"

	var_Elements.Add("Element C",48,24)
oSwimLane.FitToClient()

3:
Context Menu - Microsoft Windows 8.1 - Ribbon Like

Dim oSwimLane as P
Dim var_Appearance as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_background.ebn")
	var_Appearance.Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_groupt.ebn")
	var_Appearance.Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_hot.ebn")
	var_Appearance.Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_select.ebn")
	var_Appearance.Add(17,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tab.ebn")
	var_Appearance.Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tabhot.ebn")
	var_Appearance.Add(30,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio0.ebn")
	var_Appearance.Add(31,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio1.ebn")
	var_Appearance.Add(32,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check0.ebn")
	var_Appearance.Add(33,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check1.ebn")
	var_Appearance.Add(34,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttonu.ebn")
	var_Appearance.Add(35,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttond.ebn")
oSwimLane.Template = "Background(99) = 16777216" // oSwimLane.Background(99) = 16777216
oSwimLane.Template = "Background(64) = 33488638" // oSwimLane.Background(64) = 33488638
oSwimLane.Template = "Background(102) = 234881024" // oSwimLane.Background(102) = 234881024
oSwimLane.Template = "Background(148) = 16777216" // oSwimLane.Background(148) = 16777216
oSwimLane.Template = "Background(149) = 16777215" // oSwimLane.Background(149) = 16777215
oSwimLane.Template = "Background(155) = 201326592" // oSwimLane.Background(155) = 201326592
oSwimLane.Template = "Background(153) = 234881024" // oSwimLane.Background(153) = 234881024
oSwimLane.Template = "Background(110) = 201326592" // oSwimLane.Background(110) = 201326592
oSwimLane.Template = "Background(112) = 587202560" // oSwimLane.Background(112) = 587202560
oSwimLane.Template = "Background(2) = 570425344" // oSwimLane.Background(2 '2 + ) = 570425344
oSwimLane.Template = "Background(3) = 587202560" // oSwimLane.Background(3 '3 + ) = 587202560
oSwimLane.Template = "Background(70) = 536870912" // oSwimLane.Background(70) = 536870912
oSwimLane.Template = "Background(71) = 553648128" // oSwimLane.Background(71) = 553648128
oSwimLane.Template = "Background(73) = 503316480" // oSwimLane.Background(73) = 503316480
oSwimLane.Template = "Background(74) = 520093696" // oSwimLane.Background(74) = 520093696
oSwimLane.EndUpdate()

2:
Context Menu - Microsoft Paint - Ribbon Like

Dim oSwimLane as P
Dim var_Appearance as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_background.ebn")
	var_Appearance.Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupt.ebn")
	var_Appearance.Add(3,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupo.ebn")
	var_Appearance.Add(4,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_grouphot.ebn")
	var_Appearance.Add(5,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameh.ebn")
	var_Appearance.Add(6,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehs.ebn")
	var_Appearance.Add(7,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehi.ebn")
	var_Appearance.Add(8,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehe.ebn")
	var_Appearance.Add(9,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevs.ebn")
	var_Appearance.Add(10,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevi.ebn")
	var_Appearance.Add(11,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameve.ebn")
	var_Appearance.Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_select.ebn")
	var_Appearance.Add(13,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_bordert.ebn")
	var_Appearance.Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttond.ebn")
	var_Appearance.Add(15,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttonu.ebn")
	var_Appearance.Add(16,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tab.ebn")
	var_Appearance.Add(17,"CP:16 0 0 0 1")
	var_Appearance.Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabhot.ebn")
	var_Appearance.Add(19,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabselhot.ebn")
	var_Appearance.Add(20,"CP:19 0 0 0 1")
oSwimLane.Template = "Background(99) = 16777216" // oSwimLane.Background(99) = 16777216
oSwimLane.Template = "Background(101) = 9126421" // oSwimLane.Background(101) = 9126421
oSwimLane.Template = "Background(102) = 234881024" // oSwimLane.Background(102) = 234881024
oSwimLane.Template = "Background(64) = 33488638" // oSwimLane.Background(64) = 33488638
oSwimLane.Template = "Background(148) = 16777216" // oSwimLane.Background(148) = 16777216
oSwimLane.Template = "Background(149) = 16777215" // oSwimLane.Background(149) = 16777215
oSwimLane.Template = "Background(155) = 218103808" // oSwimLane.Background(155) = 218103808
oSwimLane.Template = "Background(153) = 16777216" // oSwimLane.Background(153) = 16777216
oSwimLane.Template = "Background(2) = 218103808" // oSwimLane.Background(2 '2 + ) = 218103808
oSwimLane.Template = "Background(105) = 83886080" // oSwimLane.Background(105) = 83886080
oSwimLane.Template = "Background(106) = 100663296" // oSwimLane.Background(106) = 100663296
oSwimLane.Template = "Background(107) = 117440512" // oSwimLane.Background(107) = 117440512
oSwimLane.Template = "Background(108) = 134217728" // oSwimLane.Background(108) = 134217728
oSwimLane.Template = "Background(116) = 150994944" // oSwimLane.Background(116) = 150994944
oSwimLane.Template = "Background(117) = 167772160" // oSwimLane.Background(117) = 167772160
oSwimLane.Template = "Background(118) = 184549376" // oSwimLane.Background(118) = 184549376
oSwimLane.Template = "Background(110) = 201326592" // oSwimLane.Background(110) = 201326592
oSwimLane.Template = "Background(112) = 251658240" // oSwimLane.Background(112) = 251658240
oSwimLane.EndUpdate()

1:
Context Menu - Microsoft Office - Ribbon Like

Dim oSwimLane as P
Dim var_Appearance as P

oSwimLane = topparent:CONTROL_ACTIVEX1.activex
oSwimLane.BeginUpdate()
var_Appearance = oSwimLane.VisualAppearance
	var_Appearance.Add(1,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_background.ebn")
	var_Appearance.Add(2,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupt.ebn")
	var_Appearance.Add(3,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupo.ebn")
	var_Appearance.Add(4,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_grouphot.ebn")
	var_Appearance.Add(5,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameh.ebn")
	var_Appearance.Add(6,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehs.ebn")
	var_Appearance.Add(7,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehi.ebn")
	var_Appearance.Add(8,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehe.ebn")
	var_Appearance.Add(9,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevs.ebn")
	var_Appearance.Add(10,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevi.ebn")
	var_Appearance.Add(11,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameve.ebn")
	var_Appearance.Add(12,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_select.ebn")
	var_Appearance.Add(13,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_bordert.ebn")
	var_Appearance.Add(14,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttond.ebn")
	var_Appearance.Add(15,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttonu.ebn")
	var_Appearance.Add(16,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tab.ebn")
	var_Appearance.Add(17,"CP:16 0 0 0 1")
	var_Appearance.Add(18,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabhot.ebn")
	var_Appearance.Add(19,"C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabselhot.ebn")
	var_Appearance.Add(20,"CP:19 0 0 0 1")
oSwimLane.Template = "Background(99) = 16777216" // oSwimLane.Background(99) = 16777216
oSwimLane.Template = "Background(101) = 9126421" // oSwimLane.Background(101) = 9126421
oSwimLane.Template = "Background(64) = 33488638" // oSwimLane.Background(64) = 33488638
oSwimLane.Template = "Background(148) = 16777216" // oSwimLane.Background(148) = 16777216
oSwimLane.Template = "Background(149) = 16777215" // oSwimLane.Background(149) = 16777215
oSwimLane.Template = "Background(155) = 218103808" // oSwimLane.Background(155) = 218103808
oSwimLane.Template = "Background(153) = 16777216" // oSwimLane.Background(153) = 16777216
oSwimLane.Template = "Background(2) = 218103808" // oSwimLane.Background(2 '2 + ) = 218103808
oSwimLane.Template = "Background(3) = 16777216" // oSwimLane.Background(3 '3 + ) = 16777216
oSwimLane.Template = "Background(105) = 83886080" // oSwimLane.Background(105) = 83886080
oSwimLane.Template = "Background(106) = 100663296" // oSwimLane.Background(106) = 100663296
oSwimLane.Template = "Background(107) = 117440512" // oSwimLane.Background(107) = 117440512
oSwimLane.Template = "Background(108) = 134217728" // oSwimLane.Background(108) = 134217728
oSwimLane.Template = "Background(116) = 150994944" // oSwimLane.Background(116) = 150994944
oSwimLane.Template = "Background(117) = 167772160" // oSwimLane.Background(117) = 167772160
oSwimLane.Template = "Background(118) = 184549376" // oSwimLane.Background(118) = 184549376
oSwimLane.Template = "Background(110) = 201326592" // oSwimLane.Background(110) = 201326592
oSwimLane.Template = "Background(102) = 234881024" // oSwimLane.Background(102) = 234881024
oSwimLane.Template = "Background(112) = 251658240" // oSwimLane.Background(112) = 251658240
oSwimLane.EndUpdate()