property Lane.Children as Lanes
Retrieves a collection of child-lanes.

TypeDescription
Lanes A Lanes collection that specifies the child-lanes of the current lane. 
By default, the Children collection is empty. The Count property of the Lanes object defines the number of child-lanes ( sub-lanes ). The Item property of the Lanes object returns the Lane object giving its position. The Parent property indicates the parent-lane of the current lane. The Caption property defines the lane's header caption. The DefPoolHeaderCaptionFormat specifies the default format/text of the caption to be shown on the lane's header. The lane's context menu (InvokeContextMenu property) defines the Split item that changes the Count property of the Children collection. The Position property specifies the lane's position.

The following sample defines lanes and sub-lanes:

VBA (MS Access, Excell...)

With SwimLane1
	.BeginUpdate 
	With .Pools.Add(-150,-150,300,250)
		.HeaderSize(1) = 32
		.HeaderSize(3) = 32
		With .Lane(1).Children
			.Count = 3
			.item(1).Children.Count = 2
		End With
	End With
	.EndUpdate 
End With

VB6

With SwimLane1
	.BeginUpdate 
	With .Pools.Add(-150,-150,300,250)
		.HeaderSize(exHeaderTop) = 32
		.HeaderSize(exHeaderBottom) = 32
		With .Lane(exLaneVertical).Children
			.Count = 3
			.item(1).Children.Count = 2
		End With
	End With
	.EndUpdate 
End With

VB.NET

With Exswimlane1
	.BeginUpdate()
	With .Pools.Add(-150,-150,300,250)
		.set_HeaderSize(exontrol.EXSWIMLANELib.HeaderPosEnum.exHeaderTop,32)
		.set_HeaderSize(exontrol.EXSWIMLANELib.HeaderPosEnum.exHeaderBottom,32)
		With .get_Lane(exontrol.EXSWIMLANELib.LaneTypeEnum.exLaneVertical).Children
			.Count = 3
			.get_item(1).Children.Count = 2
		End With
	End With
	.EndUpdate()
End With

VB.NET for /COM

With AxSwimLane1
	.BeginUpdate()
	With .Pools.Add(-150,-150,300,250)
		.HeaderSize(EXSWIMLANELib.HeaderPosEnum.exHeaderTop) = 32
		.HeaderSize(EXSWIMLANELib.HeaderPosEnum.exHeaderBottom) = 32
		With .Lane(EXSWIMLANELib.LaneTypeEnum.exLaneVertical).Children
			.Count = 3
			.item(1).Children.Count = 2
		End With
	End With
	.EndUpdate()
End With

C++

/*
	Copy and paste the following directives to your header file as
	it defines the namespace 'EXSWIMLANELib' for the library: 'ExSwimLane 1.0 Control Library'

	#import <ExSwimLane.dll>
	using namespace EXSWIMLANELib;
*/
EXSWIMLANELib::ISwimLanePtr spSwimLane1 = GetDlgItem(IDC_SWIMLANE1)->GetControlUnknown();
spSwimLane1->BeginUpdate();
EXSWIMLANELib::IPoolPtr var_Pool = spSwimLane1->GetPools()->Add(long(-150),long(-150),long(300),long(250));
	var_Pool->PutHeaderSize(EXSWIMLANELib::exHeaderTop,32);
	var_Pool->PutHeaderSize(EXSWIMLANELib::exHeaderBottom,32);
	EXSWIMLANELib::ILanesPtr var_Lanes = var_Pool->GetLane(EXSWIMLANELib::exLaneVertical)->GetChildren();
		var_Lanes->PutCount(3);
		var_Lanes->Getitem(long(1))->GetChildren()->PutCount(2);
spSwimLane1->EndUpdate();

C++ Builder

SwimLane1->BeginUpdate();
Exswimlanelib_tlb::IPoolPtr var_Pool = SwimLane1->Pools->Add(TVariant(-150),TVariant(-150),TVariant(300),TVariant(250));
	var_Pool->set_HeaderSize(Exswimlanelib_tlb::HeaderPosEnum::exHeaderTop,32);
	var_Pool->set_HeaderSize(Exswimlanelib_tlb::HeaderPosEnum::exHeaderBottom,32);
	Exswimlanelib_tlb::ILanesPtr var_Lanes = var_Pool->get_Lane(Exswimlanelib_tlb::LaneTypeEnum::exLaneVertical)->Children;
		var_Lanes->Count = 3;
		var_Lanes->get_item(TVariant(1))->Children->Count = 2;
SwimLane1->EndUpdate();

C#

exswimlane1.BeginUpdate();
exontrol.EXSWIMLANELib.Pool var_Pool = exswimlane1.Pools.Add(-150,-150,300,250);
	var_Pool.set_HeaderSize(exontrol.EXSWIMLANELib.HeaderPosEnum.exHeaderTop,32);
	var_Pool.set_HeaderSize(exontrol.EXSWIMLANELib.HeaderPosEnum.exHeaderBottom,32);
	exontrol.EXSWIMLANELib.Lanes var_Lanes = var_Pool.get_Lane(exontrol.EXSWIMLANELib.LaneTypeEnum.exLaneVertical).Children;
		var_Lanes.Count = 3;
		var_Lanes[1].Children.Count = 2;
exswimlane1.EndUpdate();

JScript/JavaScript

<BODY onload="Init()">
<OBJECT CLASSID="clsid:AFA73FCE-6609-4062-AE6A-4BAD6D96A025" id="SwimLane1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	SwimLane1.BeginUpdate();
	var var_Pool = SwimLane1.Pools.Add(-150,-150,300,250);
		var_Pool.HeaderSize(1) = 32;
		var_Pool.HeaderSize(3) = 32;
		var var_Lanes = var_Pool.Lane(1).Children;
			var_Lanes.Count = 3;
			var_Lanes.item(1).Children.Count = 2;
	SwimLane1.EndUpdate();
}
</SCRIPT>
</BODY>

VBScript

<BODY onload="Init()">
<OBJECT CLASSID="clsid:AFA73FCE-6609-4062-AE6A-4BAD6D96A025" id="SwimLane1"></OBJECT>

<SCRIPT LANGUAGE="VBScript">
Function Init()
	With SwimLane1
		.BeginUpdate 
		With .Pools.Add(-150,-150,300,250)
			.HeaderSize(1) = 32
			.HeaderSize(3) = 32
			With .Lane(1).Children
				.Count = 3
				.item(1).Children.Count = 2
			End With
		End With
		.EndUpdate 
	End With
End Function
</SCRIPT>
</BODY>

C# for /COM

axSwimLane1.BeginUpdate();
EXSWIMLANELib.Pool var_Pool = axSwimLane1.Pools.Add(-150,-150,300,250);
	var_Pool.set_HeaderSize(EXSWIMLANELib.HeaderPosEnum.exHeaderTop,32);
	var_Pool.set_HeaderSize(EXSWIMLANELib.HeaderPosEnum.exHeaderBottom,32);
	EXSWIMLANELib.Lanes var_Lanes = var_Pool.get_Lane(EXSWIMLANELib.LaneTypeEnum.exLaneVertical).Children;
		var_Lanes.Count = 3;
		var_Lanes[1].Children.Count = 2;
axSwimLane1.EndUpdate();

X++ (Dynamics Ax 2009)

public void init()
{
	COM com_Lane,com_Lanes,com_Lanes1,com_Pool;
	anytype var_Lane,var_Lanes,var_Lanes1,var_Pool;
	;

	super();

	exswimlane1.BeginUpdate();
	var_Pool = COM::createFromObject(exswimlane1.Pools()).Add(COMVariant::createFromInt(-150),COMVariant::createFromInt(-150),COMVariant::createFromInt(300),COMVariant::createFromInt(250)); com_Pool = var_Pool;
		com_Pool.HeaderSize(1/*exHeaderTop*/,32);
		com_Pool.HeaderSize(3/*exHeaderBottom*/,32);
		var_Lane = COM::createFromObject(com_Pool.Lane(1/*exLaneVertical*/)); com_Lane = var_Lane;
		var_Lanes = com_Lane.Children(); com_Lanes = var_Lanes;
			com_Lanes.Count(3);
			var_Lane = COM::createFromObject(com_Lanes.item(COMVariant::createFromInt(1))); com_Lane = var_Lane;
			var_Lanes1 = COM::createFromObject(com_Lane).Children(); com_Lanes1 = var_Lanes1;
			com_Lanes1.Count(2);
	exswimlane1.EndUpdate();
}

Delphi 8 (.NET only)

with AxSwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(TObject(-150),TObject(-150),TObject(300),TObject(250)) do
	begin
		HeaderSize[EXSWIMLANELib.HeaderPosEnum.exHeaderTop] := 32;
		HeaderSize[EXSWIMLANELib.HeaderPosEnum.exHeaderBottom] := 32;
		with Lane[EXSWIMLANELib.LaneTypeEnum.exLaneVertical].Children do
		begin
			Count := 3;
			item[TObject(1)].Children.Count := 2;
		end;
	end;
	EndUpdate();
end

Delphi (standard)

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-150),OleVariant(-150),OleVariant(300),OleVariant(250)) do
	begin
		HeaderSize[EXSWIMLANELib_TLB.exHeaderTop] := 32;
		HeaderSize[EXSWIMLANELib_TLB.exHeaderBottom] := 32;
		with Lane[EXSWIMLANELib_TLB.exLaneVertical].Children do
		begin
			Count := 3;
			item[OleVariant(1)].Children.Count := 2;
		end;
	end;
	EndUpdate();
end

VFP

with thisform.SwimLane1
	.BeginUpdate
	with .Pools.Add(-150,-150,300,250)
		.HeaderSize(1) = 32
		.HeaderSize(3) = 32
		with .Lane(1).Children
			.Count = 3
			.item(1).Children.Count = 2
		endwith
	endwith
	.EndUpdate
endwith

dBASE Plus

local oSwimLane,var_Lanes,var_Lanes1,var_Pool

oSwimLane = form.EXSWIMLANEACTIVEXCONTROL1.nativeObject
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,250)
	// var_Pool.HeaderSize(1) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(1) = 32]
	endwith
	// var_Pool.HeaderSize(3) = 32
	with (oSwimLane)
		TemplateDef = [dim var_Pool]
		TemplateDef = var_Pool
		Template = [var_Pool.HeaderSize(3) = 32]
	endwith
	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
		with (oSwimLane)
			TemplateDef = [dim var_Lanes1]
			TemplateDef = var_Lanes1
			Template = [var_Lanes1.Count = 2]
		endwith
oSwimLane.EndUpdate()

XBasic (Alpha Five)

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()

Visual Objects

local var_Lanes as ILanes
local var_Pool as IPool

oDCOCX_Exontrol1:BeginUpdate()
var_Pool := oDCOCX_Exontrol1:Pools:Add(-150,-150,300,250)
	var_Pool:[HeaderSize,exHeaderTop] := 32
	var_Pool:[HeaderSize,exHeaderBottom] := 32
	var_Lanes := var_Pool:[Lane,exLaneVertical]:Children
		var_Lanes:Count := 3
		var_Lanes:[item,1]:Children:Count := 2
oDCOCX_Exontrol1:EndUpdate()

PowerBuilder

OleObject oSwimLane,var_Lanes,var_Pool

oSwimLane = ole_1.Object
oSwimLane.BeginUpdate()
var_Pool = oSwimLane.Pools.Add(-150,-150,300,250)
	var_Pool.HeaderSize(1,32)
	var_Pool.HeaderSize(3,32)
	var_Lanes = var_Pool.Lane(1).Children
		var_Lanes.Count = 3
		var_Lanes.item(1).Children.Count = 2
oSwimLane.EndUpdate()

Visual DataFlex

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Variant voPools
	Get ComPools to voPools
	Handle hoPools
	Get Create (RefClass(cComPools)) to hoPools
	Set pvComObject of hoPools to voPools
		Variant voPool
		Get ComAdd of hoPools -150 -150 300 250 to voPool
		Handle hoPool
		Get Create (RefClass(cComPool)) to hoPool
		Set pvComObject of hoPool to voPool
			Set ComHeaderSize of hoPool OLEexHeaderTop to 32
			Set ComHeaderSize of hoPool OLEexHeaderBottom to 32
			Variant voLane
			Get ComLane of hoPool OLEexLaneVertical to voLane
			Handle hoLane
			Get Create (RefClass(cComLane)) to hoLane
			Set pvComObject of hoLane to voLane
				Variant voLanes
				Get ComChildren of hoLane to voLanes
				Handle hoLanes
				Get Create (RefClass(cComLanes)) to hoLanes
				Set pvComObject of hoLanes to voLanes
					Set ComCount of hoLanes to 3
					Variant voLane1
					Get Comitem of hoLanes 1 to voLane1
					Handle hoLane1
					Get Create (RefClass(cComLane)) to hoLane1
					Set pvComObject of hoLane1 to voLane1
						Variant voLanes1
						Get ComChildren of hoLane1 to voLanes1
						Handle hoLanes1
						Get Create (RefClass(cComLanes)) to hoLanes1
						Set pvComObject of hoLanes1 to voLanes1
							Set ComCount of hoLanes1 to 2
						Send Destroy to hoLanes1
					Send Destroy to hoLane1
				Send Destroy to hoLanes
			Send Destroy to hoLane
		Send Destroy to hoPool
	Send Destroy to hoPools
	Send ComEndUpdate
End_Procedure

XBase++

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oLanes
	LOCAL oPool
	LOCAL oSwimLane

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

	oSwimLane := XbpActiveXControl():new( oForm:drawingArea )
	oSwimLane:CLSID  := "Exontrol.SwimLane.1" /*{AFA73FCE-6609-4062-AE6A-4BAD6D96A025}*/
	oSwimLane:create(,, {10,60},{610,370} )

		oSwimLane:BeginUpdate()
		oPool := oSwimLane:Pools():Add(-150,-150,300,250)
			oPool:SetProperty("HeaderSize",1/*exHeaderTop*/,32)
			oPool:SetProperty("HeaderSize",3/*exHeaderBottom*/,32)
			oLanes := oPool:Lane(1/*exLaneVertical*/):Children()
				oLanes:Count := 3
				oLanes:item(1):Children():Count := 2
		oSwimLane:EndUpdate()

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