53:
I am using the reserve-neighbors feature, the question is how to shift left/right the neighbors instead of up/down
with SwimLane1 do
begin
	BeginUpdate();
	AllowMoveNeighbors := EXSWIMLANELib_TLB.exMoveNeighborsHorizontally;
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeDir] := OleVariant(1);
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B ( move it )',OleVariant(16),OleVariant(32));
		Add('Element <sha ;;0>C',OleVariant(128),OleVariant(0));
	end;
	EndUpdate();
end
52:
I am using the reserve-neighbors feature, the question is if possible to specify the distance between neighbors
with SwimLane1 do
begin
	BeginUpdate();
	AllowMoveNeighbors := EXSWIMLANELib_TLB.exMoveNeighborsVertically;
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeDX] := OleVariant(0);
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeDY] := OleVariant(0);
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B ( move it )',OleVariant(0),OleVariant(32));
		Add('Element <sha ;;0>C',OleVariant(0),OleVariant(64));
	end;
	EndUpdate();
end
51:
How do I enable the reserve-neighbors feature
with SwimLane1 do
begin
	BeginUpdate();
	AllowMoveNeighbors := EXSWIMLANELib_TLB.exMoveNeighborsVertically;
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B ( move it )',OleVariant(0),OleVariant(32));
		Add('Element <sha ;;0>C',OleVariant(0),OleVariant(64));
	end;
	EndUpdate();
end
50:
I've noticed that recently, the elements get compacted once the Arrange method is performed. How can I prevent that

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element A',Null,Null).ID := 'A';
		Add('Element B',Null,Null).ID := 'B';
		Add('Element C',Null,Null).ID := 'C';
		Add('Element D',Null,Null).ID := 'D';
		Add('Element E',Null,Null).ID := 'E';
		Add('Element E',Null,Null).ID := 'F';
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['B'],Null);
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['C'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['D'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['C'],Null);
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['E'],Null);
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['F'],Null);
	end;
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeCompact] := OleVariant(False);
	Arrange(Null);
end
49:
How can I move an element to a specified lane/phase/pool

with SwimLane1 do
begin
	BeginUpdate();
	DefPoolHeaderCaptionFormat[True] := '<fgcolor 808080>Faza <off -4><b><font ;6>%i';
	DefPoolHeaderCaptionFormat[False] := '<fgcolor 808080>Culoar <off -4><b><font ;6>%i';
	with Pools.Add(OleVariant(-100),OleVariant(-100),OleVariant(250),OleVariant(180)) do
	begin
		Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 3;
		Lane[EXSWIMLANELib_TLB.exLaneVertical].Children.Count := 3;
		Lane[EXSWIMLANELib_TLB.exLaneVertical].Children.item[OleVariant(1)].Header.Caption := '<fgcolor FF0000><b>NEW';
	end;
	with Elements.Add('element 1',OleVariant(200),OleVariant(200)) do
	begin
		LaneID[True] := '0:H.0,0:V.0';
	end;
	with Elements.Add('element 2',OleVariant(200),OleVariant(200)) do
	begin
		LaneID[True] := '0:H.2,0:V.2';
	end;
	EndUpdate();
end
48:
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-2)

// AddLink event - A new link has been added to the links collection.
procedure TForm1.SwimLane1AddLink(ASender: TObject; Link : ILink);
begin
	with SwimLane1 do
	begin
		with Link do
		begin
		end;
	end
end;

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(48),OleVariant(48));
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null);
	end;
end
47:
Is it possible to add a link to show from bottom/down to top/up, rather that right to left (method-1)

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(48),OleVariant(48));
	end;
	with Links do
	begin
		with Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.DownAlignment;
			EndPos := EXSWIMLANELib_TLB.UpAlignment;
		end;
	end;
end
46:
How do I enable the cross link support ( mixed )

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(0),OleVariant(76));
		with Add('Element <sha ;;0>C',OleVariant(-76),OleVariant(32)) do
		begin
			AutoSize := False;
			Height := 32;
		end;
		with Add('Element <sha ;;0>D',OleVariant(76),OleVariant(32)) do
		begin
			AutoSize := False;
			Height := 32;
		end;
	end;
	with Links do
	begin
		with Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.CenterAlignment;
			EndPos := EXSWIMLANELib_TLB.CenterAlignment;
		end;
		with Add(SwimLane1.Elements.item[OleVariant(2)],SwimLane1.Elements.item[OleVariant(1)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.CenterAlignment;
			EndPos := EXSWIMLANELib_TLB.CenterAlignment;
		end;
		Add(SwimLane1.Elements.item[OleVariant(3)],SwimLane1.Elements.item[OleVariant(4)],Null);
		with Add(SwimLane1.Elements.item[OleVariant(4)],SwimLane1.Elements.item[OleVariant(3)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.LeftAlignment;
			EndPos := EXSWIMLANELib_TLB.RightAlignment;
		end;
	end;
	ShowLinks := Integer(EXSWIMLANELib_TLB.exShowCrossLinksMixt) Or Integer(EXSWIMLANELib_TLB.exShowExtendedLinks);
end
45:
How do I enable the cross link support ( triangular )

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(0),OleVariant(76));
		with Add('Element <sha ;;0>C',OleVariant(-76),OleVariant(32)) do
		begin
			AutoSize := False;
			Height := 32;
		end;
		with Add('Element <sha ;;0>D',OleVariant(76),OleVariant(32)) do
		begin
			AutoSize := False;
			Height := 32;
		end;
	end;
	with Links do
	begin
		with Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.CenterAlignment;
			EndPos := EXSWIMLANELib_TLB.CenterAlignment;
		end;
		with Add(SwimLane1.Elements.item[OleVariant(2)],SwimLane1.Elements.item[OleVariant(1)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.CenterAlignment;
			EndPos := EXSWIMLANELib_TLB.CenterAlignment;
		end;
		Add(SwimLane1.Elements.item[OleVariant(3)],SwimLane1.Elements.item[OleVariant(4)],Null);
		with Add(SwimLane1.Elements.item[OleVariant(4)],SwimLane1.Elements.item[OleVariant(3)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.LeftAlignment;
			EndPos := EXSWIMLANELib_TLB.RightAlignment;
		end;
	end;
	ShowLinks := Integer(EXSWIMLANELib_TLB.exShowCrossLinksTriangle) Or Integer(EXSWIMLANELib_TLB.exShowExtendedLinks);
end
44:
How do I enable the cross link support ( rectangular )

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(0),OleVariant(76));
		with Add('Element <sha ;;0>C',OleVariant(-76),OleVariant(32)) do
		begin
			AutoSize := False;
			Height := 32;
		end;
		with Add('Element <sha ;;0>D',OleVariant(76),OleVariant(32)) do
		begin
			AutoSize := False;
			Height := 32;
		end;
	end;
	with Links do
	begin
		with Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.CenterAlignment;
			EndPos := EXSWIMLANELib_TLB.CenterAlignment;
		end;
		with Add(SwimLane1.Elements.item[OleVariant(2)],SwimLane1.Elements.item[OleVariant(1)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.CenterAlignment;
			EndPos := EXSWIMLANELib_TLB.CenterAlignment;
		end;
		Add(SwimLane1.Elements.item[OleVariant(3)],SwimLane1.Elements.item[OleVariant(4)],Null);
		with Add(SwimLane1.Elements.item[OleVariant(4)],SwimLane1.Elements.item[OleVariant(3)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.LeftAlignment;
			EndPos := EXSWIMLANELib_TLB.RightAlignment;
		end;
	end;
	ShowLinks := Integer(EXSWIMLANELib_TLB.exShowCrossLinksRect) Or Integer(EXSWIMLANELib_TLB.exShowExtendedLinks);
end
43:
How do I show a link frmo bottom to top, or reverse, not from left to right

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(0),OleVariant(64));
	end;
	with Links do
	begin
		with Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null) do
		begin
			StartPos := EXSWIMLANELib_TLB.CenterAlignment;
			EndPos := EXSWIMLANELib_TLB.CenterAlignment;
		end;
	end;
end
42:
Is it possible to control the links, so that they are always centered

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element A',Null,Null).ID := 'A';
		Add('Element B',Null,Null).ID := 'B';
		Add('Element C',Null,Null).ID := 'C';
		Add('Element D',Null,Null).ID := 'D';
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['B'],Null);
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['C'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['D'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['C'],Null);
	end;
	ShowLinks := EXSWIMLANELib_TLB.exShowLinks;
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeDir] := OleVariant(1);
	Arrange(Null);
end
41:
What options to align the elements do I have if I use Arrange method

with SwimLane1 do
begin
	BeginUpdate();
	ShowGridLines := True;
	with Elements do
	begin
		h1 := Add('Top Alignment',Null,Null).ID;
		Add('Element',Null,Null);
		Add('Element',Null,Null);
		Add('Element',Null,Null);
		h2 := Add('Center Alignment',Null,OleVariant(96)).ID;
		Add('Element',Null,OleVariant(96));
		Add('Element',Null,OleVariant(96));
		Add('Element',Null,OleVariant(96));
		h3 := Add('Bottom Alignment',Null,OleVariant(178)).ID;
		Add('Element',Null,OleVariant(192));
		Add('Element',Null,OleVariant(192));
		Add('Element',Null,OleVariant(192));
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null);
		Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(3)],Null);
		Add(SwimLane1.Elements.item[OleVariant(2)],SwimLane1.Elements.item[OleVariant(4)],Null);
		Add(SwimLane1.Elements.item[OleVariant(2)],SwimLane1.Elements.item[OleVariant(3)],Null);
		Add(SwimLane1.Elements.item[OleVariant(5)],SwimLane1.Elements.item[OleVariant(6)],Null);
		Add(SwimLane1.Elements.item[OleVariant(5)],SwimLane1.Elements.item[OleVariant(7)],Null);
		Add(SwimLane1.Elements.item[OleVariant(6)],SwimLane1.Elements.item[OleVariant(8)],Null);
		Add(SwimLane1.Elements.item[OleVariant(6)],SwimLane1.Elements.item[OleVariant(7)],Null);
		Add(SwimLane1.Elements.item[OleVariant(9)],SwimLane1.Elements.item[OleVariant(10)],Null);
		Add(SwimLane1.Elements.item[OleVariant(9)],SwimLane1.Elements.item[OleVariant(11)],Null);
		Add(SwimLane1.Elements.item[OleVariant(10)],SwimLane1.Elements.item[OleVariant(12)],Null);
		Add(SwimLane1.Elements.item[OleVariant(10)],SwimLane1.Elements.item[OleVariant(11)],Null);
	end;
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeAlign] := OleVariant(0);
	Arrange(OleVariant(h1));
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeAlign] := OleVariant(1);
	Arrange(OleVariant(h2));
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeAlign] := OleVariant(2);
	Arrange(OleVariant(h3));
	EndUpdate();
end
40:
Is there an auto-arrange feature that will display the flow-chart centered and zoomed correctly after we are finished building it

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element A',Null,Null).ID := 'A';
		Add('Element B',Null,Null).ID := 'B';
		Add('Element C',Null,Null).ID := 'C';
		Add('Element D',Null,Null).ID := 'D';
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['B'],Null);
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['C'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['D'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['C'],Null);
	end;
	Arrange(Null);
end
39:
Is it possible to change the distance between elements, when calling the Arrange method

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element A',Null,Null).ID := 'A';
		Add('Element B',Null,Null).ID := 'B';
		Add('Element C',Null,Null).ID := 'C';
		Add('Element D',Null,Null).ID := 'D';
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['B'],Null);
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['C'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['D'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['C'],Null);
	end;
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeDX] := OleVariant(0);
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeDY] := OleVariant(0);
	Arrange(Null);
end
38:
How do I organize vertically the elements

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element A',Null,Null).ID := 'A';
		Add('Element B',Null,Null).ID := 'B';
		Add('Element C',Null,Null).ID := 'C';
		Add('Element D',Null,Null).ID := 'D';
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['B'],Null);
		Add(SwimLane1.Elements.item['A'],SwimLane1.Elements.item['C'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['D'],Null);
		Add(SwimLane1.Elements.item['B'],SwimLane1.Elements.item['C'],Null);
	end;
	ShowLinksType := EXSWIMLANELib_TLB.exLinkStraight;
	DefArrange[EXSWIMLANELib_TLB.exDefArrangeDir] := OleVariant(1);
	Arrange(Null);
end
37:
How can I add programatically a link

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(96),OleVariant(24));
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null);
	end;
end
36:
How do I get the link from the cursor
// MouseMove event - Occurs when the user moves the mouse.
procedure TForm1.SwimLane1MouseMove(ASender: TObject; Button : Smallint;Shift : Smallint;X : Integer;Y : Integer);
begin
	with SwimLane1 do
	begin
		l := (IUnknown(LinkFromPoint[-1,-1]) as _TLB.Object);
		OutputDebugString( l );
	end
end;

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element <sha ;;0>A',Null,Null);
		Add('Element <sha ;;0>B',OleVariant(96),OleVariant(24));
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(2)],Null);
	end;
end
35:
Is there a way to create a link which has the same start and end element

with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element',Null,Null);
	end;
	with Links do
	begin
		Add(SwimLane1.Elements.item[OleVariant(1)],SwimLane1.Elements.item[OleVariant(1)],Null);
	end;
end
34:
How can I show the pool's caption not-rotated or mirrored

with SwimLane1 do
begin
	BeginUpdate();
	AllowDesignHeader := EXSWIMLANELib_TLB.exDesignHeaderSingle;
	with Pools.Add(OleVariant(-150),OleVariant(-150),OleVariant(300),OleVariant(150)) do
	begin
		HeaderCaptionSupportRotate := False;
		HeaderSize[EXSWIMLANELib_TLB.exHeaderLeft] := 48;
		HeaderSize[EXSWIMLANELib_TLB.exHeaderRight] := 48;
		Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 3;
	end;
	EndUpdate();
end
33:
How can I prevent creating sub-lanes or sub-phases

with SwimLane1 do
begin
	BeginUpdate();
	AllowDesignHeader := EXSWIMLANELib_TLB.exDesignHeaderSingle;
	with Pools.Add(OleVariant(-150),OleVariant(-150),OleVariant(300),OleVariant(150)) do
	begin
		HeaderSize[EXSWIMLANELib_TLB.exHeaderLeft] := 32;
		HeaderSize[EXSWIMLANELib_TLB.exHeaderRight] := 32;
		Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 3;
	end;
	EndUpdate();
end
32:
How do I show a complete frame/border around the header

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-150),OleVariant(-150),OleVariant(300),OleVariant(150)) 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)].Header.Pattern.Type := EXSWIMLANELib_TLB.exPatternFrameThick;
		end;
	end;
	EndUpdate();
end
31:
How do I show a complete frame/border around the lane

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-150),OleVariant(-150),OleVariant(300),OleVariant(150)) 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)].Pattern.Type := EXSWIMLANELib_TLB.exPatternFrameThick;
		end;
	end;
	EndUpdate();
end
30:
How can I define sub-lanes

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
29:
How can I add default lanes when the user creates a new pool
// AddPool event - A new pool has been added to the surface.
procedure TForm1.SwimLane1AddPool(ASender: TObject; Pool : IPool);
begin
	// Pool.HeaderSize(1) = 24
	// Pool.HeaderVisible(0) = False
	// Pool.HeaderVisible(1) = True
	// Pool.HeaderVisible(2) = False
	// Pool.HeaderVisible(3) = False
	// Pool.Lane(1).Children.Count = 2
end;

with SwimLane1 do
begin
	BeginUpdate();
	Pools.Add(OleVariant(-100),OleVariant(-100),OleVariant(250),OleVariant(250));
	EndUpdate();
end
28:
How do I prevent showing headers when the user creates new pools

// AddPool event - A new pool has been added to the surface.
procedure TForm1.SwimLane1AddPool(ASender: TObject; Pool : IPool);
begin
	with SwimLane1 do
	begin
		with Pool do
		begin
		end;
	end
end;

with SwimLane1 do
begin
	BeginUpdate();
	Pools.Add(OleVariant(-100),OleVariant(-100),OleVariant(250),OleVariant(250)).Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 3;
	EndUpdate();
end
27:
How can I display icons on headers

with SwimLane1 do
begin
	BeginUpdate();
	Images('gBJJgBAIDAAGAAEAAQhYAf8Pf4hh0QihCJo2AEZjQAjEZFEaIEaEEaAIAkcbk0olUrlktl0vmExmUzmk1m03nE5nU7nk9n0/oFBoVDolFo1HpFJpVLplNp1PqFRqVTql' + 
	'Vq1XrFZrVbrldr1fsFhsVjslls1ntFptVrtltt1vuFxuVzul1u13vF5vV7vl9v1/wGBwWDwmFw2HxGJxWLxmNx0xiFdyOTh8Tf9ZymXx+QytcyNgz8r0OblWjyWds+m0' + 
	'ka1Vf1ta1+r1mos2xrG2xeZ0+a0W0qOx3GO4NV3WeyvD2XJ5XL5nN51aiw+lfSj0gkUkAEllHanHI5j/cHg8EZf7w8vl8j4f/qfEZeB09/vjLAB30+kZQAP/P5/H6/yN' + 
	'AOAEAwCjMBwFAEDwJBMDwLBYAP2/8Hv8/gAGAD8LQs9w/nhDY/oygIA=');
	with Pools.Add(OleVariant(-100),OleVariant(-100),OleVariant(250),OleVariant(250)) do
	begin
		HeaderVisible[EXSWIMLANELib_TLB.exHeaderLeft] := False;
		HeaderVisible[EXSWIMLANELib_TLB.exHeaderRight] := False;
		HeaderVisible[EXSWIMLANELib_TLB.exHeaderBottom] := False;
		HeaderSize[EXSWIMLANELib_TLB.exHeaderTop] := 24;
		with Lane[EXSWIMLANELib_TLB.exLaneVertical].Children do
		begin
			Count := 3;
			item[OleVariant(0)].Header.Caption := '<img>1</img> A';
			item[OleVariant(1)].Header.Caption := '<img>2</img> B';
			item[OleVariant(2)].Header.Caption := '<img>3</img> C';
		end;
	end;
	EndUpdate();
end
26:
How do I change the Lane and Phase strings being displayed on the lanes

with SwimLane1 do
begin
	BeginUpdate();
	DefPoolHeaderCaptionFormat[True] := '<fgcolor 808080>Faza <off -4><b><font ;6>%i';
	DefPoolHeaderCaptionFormat[False] := '<fgcolor 808080>Culoar <off -4><b><font ;6>%i';
	with Pools.Add(OleVariant(-100),OleVariant(-100),OleVariant(250),OleVariant(250)) do
	begin
		Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 3;
		Lane[EXSWIMLANELib_TLB.exLaneVertical].Children.Count := 3;
		Lane[EXSWIMLANELib_TLB.exLaneVertical].Children.item[OleVariant(1)].Header.Caption := '<fgcolor FF0000><b>NEW';
	end;
	EndUpdate();
end
25:
How can I enlarge the node while AutoSize property is True (method 2)

with SwimLane1 do
begin
	Background[EXSWIMLANELib_TLB.exElementBackColor] := $ffffff;
	with Elements.Add('Element',OleVariant(0),OleVariant(0)).Copy(Null,Null) do
	begin
		Caption := 'Enlarged Element';
		InflateSize := 16;
	end;
end
24:
How can I enlarge the node while AutoSize property is True (method 1)

with SwimLane1 do
begin
	Background[EXSWIMLANELib_TLB.exElementBackColor] := $ffffff;
	with Elements.Add('Element',OleVariant(0),OleVariant(0)).Copy(Null,Null) do
	begin
		Caption := 'Enlarged Element';
		Padding[EXSWIMLANELib_TLB.exPaddingAll] := 16;
	end;
end
23:
How can I get the lane of the element

with SwimLane1 do
begin
	BeginUpdate();
	Pools.Add(OleVariant(-150),OleVariant(-150),OleVariant(500),OleVariant(250)).Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 3;
	with Elements.Add('Element',Null,Null) do
	begin
		CenterOnLane(False);
		lane := LaneID[False];
		OutputDebugString( SwimLane1.LaneByID[OleVariant(lane)].Header.Caption );
	end;
	EndUpdate();
end
22:
How can I define a different shape for elements

// AddElement event - A new element has been added to the surface.
procedure TForm1.SwimLane1AddElement(ASender: TObject; Element : IElement);
begin
	with SwimLane1 do
	begin
		with Element do
		begin
		end;
	end
end;

with SwimLane1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'gBFLBCJwBAEHhEJAAChABAQDg6AADACAxRDQNABQKAAzQFAYahuHKGAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQwDiAUIjIK8IhkGIcZAGIBJCjWGodQLOEgwHI' + 
	'ERQjEyUJAGGYqEjaO41SpAdI0PCxUScACnDQiegJRgmQ4cTJSchSAKENx1JaeYReewwAqNd5TRwNIiydZUIhqGC1YRte4ZWiCWoJVzSVDLfbgAT4X60IIlCi5Mi6MIgD' + 
	'ZJFDUNLUdRBMKNJ7qagaWoWOaQRbmAQQTRYLQ/TiEXZDQRAAyLJIWVRQWTAAKVbw1LiEcznGCcejzIIDaZpOh4DplWzTOgALjta4IRpvNwAbIAF4gBqsLyXXLcdQyORM' + 
	'iwbxZgSDhgnQbJFC6F5JhECA8CADwIgMeQnmoQJlh0eAfGcXYZjwccOHiWx/moAJ6jed4DC2dJnnmQRxBcKABBoWAcHULZLHyV4mmGOx0FmdpZAMAgQhEQBpBiRxBlQc' + 
	'gZFUdAMEYAxQDECBNgaUYglkCQKBGZANk0QgBgQXAQgcGI0FwJAHA6WI+DGDAjCiVg0g2Yw4mYNg7E0eJ1H+DpkAiYhBg6JApBYRMvDkJhGhKJIImEA4QledZ8H+FJlE' + 
	'EQhWBAJa8loRoCgkdhYBAExZHQKIXmUYRCFQI5mgWfZ4hMJpJC4boTGcCY0m0QJVBAIh2EIZZ5H4VIVAqeZ1H8M5oAmSg7g8TR1n4fQrmUQZCgqF5eEmYhYBgKQJiCD4' + 
	'PmaegKhWJZnAQDZkhqaYKFocYnGadZ8h+KJoiGQhfEIURAmKEAYAgeo1H8OZrAoeoyhGKYngaHInmuCpOjmKAkHMHo+iiSZxmKQoXkGCwWigRQlnqLh7jKSh7DYUYzm0' + 
	'CgAk+DIrFCAo3i6LYKnKWYuk6Wp4keKIqDsLh7BYLhJmaZo5mcYAijAOZtFsXpajubZLG6co8CSShtnYeJrGeVpzjwbxLnafI/mcK5ZnmPgtGuap+j6cIMB8CocDAK43' + 
	'AaQAwjwJwQkSaZsDcBI7jETBHBqRhxkibwWkCMQsgcG5Ii2TB+nkN5yEyJwjkqcJMh8DpKDKTIrB2TBmnyGwFkwMw8mcMpOmQbJbBiTwziyUxBDsc5sD8QJRnQKprEWT' + 
	'g0g0DxNlKMpsF8RpSHUTQ7BuUp0n0VxZi4MxrDSJ40DYDYHGKWJ2E2FxmyADYnGqMRBgeYh0FOLh9kccpcncJsVw7RdjvA2M4eovRmCSFkMwQIoAQEBA');
		Add(2,'gBFLBCJwBAEHhEJAAChABAIDg6AADACAxRDQNABQKAAzQFAYaBmG6GAAGEaBYgmFgAQhFcZQSKUOQTDKMIziYBYJhEMQ1DAAUIjKLMIhmGAYJAGIBJCjWGodQLOEgwHI' + 
	'ERQjEyUpIyVAkYw5HqNaQjICoJoSOwAU47IaCIAFJSpCygKKgSjhRpoAAyU5IUgVPC4XSbD6zYDqapaTheEQyDSJNr3DCMUTlFYYLrmaQKMhqZJhWjbFSWXUpJ4pSrLM' + 
	'IyfTwZRJGzIK7jabLIjaP6GUDhVaYbRUL46CiEb5AAJsVpCCZrYRJOYVdQeDYbQCNLDhHQIDqaA6kZRAdQ2bpMBznPSvbovDgLWhGYqhbLCNibRC+d4HNrCYIlCjpMw3' + 
	'CYGIOHOMRsm0OxFjSZppneHQNFcSwRAOaprjqY4dgYe4VgGWwADucRuHYCpdByYROH8AAOC8D4NgEXwYBWEZyGAWoHg2MRCECBAkFAGhGDGUB1ByBhQkUIAPgCRAMEIE' + 
	'xhIuNhCEKBAlnAcwQgAYQXAIIRWEUFwJAGQ42CiCoihiLgugsYwDjSZ4MkICJWCaDZjgiZg6EIQQInSV4PmKeIyEKEBkBQDhEgwZBzjSd4SlEQJgk+E5khkRhIhSZA5F' + 
	'IUoVGWCQkl+FpkliTJnhXSYaFaGJOlEIhmC2ZoJgIZIaiWGYuG62IpDyT4TGSM5eGyCpmCnPIcCeQg+H6HZmnoAh6iAaBDjSL4hkUCgmgKHhlHmeIPh8BwKAqEohGkOg' + 
	'OHCI4pAmMoMhUKByj6CQUCkWoGhSKJpGkJoQiOJR6G4cYTmcSQuiKKRqEqPovhmBIJiCN4YEACQGFsN5lliToyiwbAKkKQoSGcWQ2HKERrhiJJvjLUR8leL5sDsBpQiU' + 
	'ZZpDaO4eAACZWh+LYtDsSpejQbmJnIEAuEsLJvECRgLiSH46m2W4Gl+OxpFqWo0ECSR7lQaI9m8C4+nqO4uAIHp+B4MAJmcAAeC+YgenmPwwHwHInkKRYMDaWIQGmeh3' + 
	'AmPpxDsCJHkWbhBAIdZDmMGZXBmRZMHwVwikUIwam0MAMC4awiEmOYyHsXwkkIMp5jMLBMDKaRiiqEBsmkNwpkwc5MyiHRrEKfxCiobIaFsQgvmsTBvD2SJuAwNBYkKS' + 
	'h6GsRYbDUDQ7EyVZmEwDwFiKdQ6BQf5XnYDRjD6IIujIfppBgKRcl6BZZnYXYLBWLYpn0KpglqLAtAIZoOneBsZw9RJjnQ+AYQAgCAg=');
		Add(3,'gBFLBCJwBAEHhEJAAChABQsMACAADACAxRDQNABQKAAzQFAYawLBgABhGUZoJhUAIIRZGMIjFDcEwxC6NIpAWCYQgUNQCQiNAzxAKQchhD4ZAIkGY4ZhyA42SBAcbyDC' + 
	'EShoGqPRhmCg5UjmM4oQLSFDULC0fSBBIYaSGEY5QoqIYfArGQYQTRUPyUdoOBIACwLChWLA1CTZdowSKoYTXBq3IgqerIapmSYaV7YNh3VY1IR/JSVJYlaYJDoyNI4T' + 
	'hHc5xVLtfSfAiiJrxOKcTAAFJ0QKFUbRUz+OgBTpvaZxagaSpSG5WRpWEI5PAdN4zTa7YDsS67FiSG5oWpEFq2eAGdzlVLMMqhG5gAxqNKzbLfMCXfJIbyrBIcYLoXIt' + 
	'CqFYskMTwxlgAY+haFZRlQZQ4HwHR3AoMx5jEch2lMfZGl8eY+jYXBvBsAAHFeRQDmuRR8nsSI2CoEgIEIRQBiQYwdAcUZIGUUIQhGGAGECRAhDYChGFERAMCgQheEcG' + 
	'QgHkEAwkICx2BCFoAj+B5iAiBgigiYhIgid4JkIQBwm2ChijiKgsguYpokYLYMmKQIiDYDgjgEAg6g6Y5InYPoPmOIAiEKEJFgkFIvhGYwIlIMoSTmAhOGgJJJC4UoSi' + 
	'USIcncKZlp8WoOAOAxeF6FBlEkNhPGcZgJhYU4ZiMMweGoDAmkGfhuhWJoJDgIIUCYeZWGGHYkhkWhuB+ZYhEIcIUmcKZSHeIJmgoFgyCeaIBgKCoYCgGYSHiI5oEoQg' + 
	'siKBgKCCH4SOAfoGiQaZKPmJ5jGCIJniiZgpk6DonGkKomgOHpnjqFoCiaawKioSYXg0eoGi6KZrBqIo6hgEIal6GosiwCpuDIBgsEqDJniYa4bVuFYkDqepKjCLQJii' + 
	'R4XCyawGk+JpGgsZIXjabRbEKV4disSYwDCH5OlsIpWjmaA5HKUomCYOp+l6OgkhoUoWiMLpbH6bw7G0KRynOHYuGuXobhWB4MAaaoaimO52naB4hnkYInhERYLBAGAh' + 
	'nECw+H2BwhkmSg7kMMIqHyb49hAECAg=');
		Add(4,'gBFLBCJwBAEHhEJAAChABOIDg6AADACAxRDQNABQKAAzQFAYaBqGCGAAGEZRSgmFgAQhFcZQTCsBw7DCEYxjOAwFgmEQxDIOIBQSKYcwiGQaRrkIYgEiONoaR7HchSFI' + 
	'cIxPFKRBhkKYocjyG5GRoBcIyXAcRSYAB2Q4ESoKShePw5UDTcCzHR8RxEDKNRLpOQbDgOUZTWbVUaDKIsXzZCKHbZhG4YRp6CZKRpYEB1bYtKTRKqLKrpeTbOoSHolT' + 
	'biIATTYlG4THyEZQrDIaDjOSIXZaGFzwSDWGgBJ60bRwHIaAxGWoHRxfEZVfBONQHMSBc5xa64JyHAImWrcUbWfaYYZ0AC6MRkK8cXABPQANixKZsCizE4DDbTYzjRhe' + 
	'C2F4nnEOJRG0BRXEWOICEocByiyCJTiQOJVGYIQ8gofpDgsG5uF+ah6D2Xp+GGP5gkCfwRHofwOnuSB2heVpZnIUZQhAIQJBQBoRgwdAdEcIYVEIQhGGAMQDBCBJYEUG' + 
	'gNhCEMcHsXIkCIAAMIILQWAkAZDjYJIJiIWIeCqCRMHiNI/guYwIkYMoMmMSJWDaDZjgiTIzg6Yo4iIPoPGIdAmECChiFKXhGAQJIAmISgQCSSQ2E6E5lAkRhShSZRJF' + 
	'QOoVkCaRkAqFpQhIPhehCY54hYQoRCOYo+GaExOnmJhghqZhJjIYYbmaaJ0l+HJkiCYgtDGY5RkIegfmeSY6GOD4MnoBh1D2aBJkYbYhmcCgigaIhOloEJ3h0aATD4bg' + 
	'WCkQoehaGAnniHhNgwKI6HaConmiSYCF4I5niGQoLDmaoAiKKoaE6eJ2H+HZnFoeohigKwqCwGItmqA4ejIHgrkIHo+iuEA4h6PGMmIHo1i0LIKk6SoMCSWwcm2LAkis' + 
	'AAAgmQgLFYcw3myaxmkmG4GgsdIXjebYjjaVQIC0eQFAONADguBpqjaaIKlwGIuG4GwOkWOYAAqDoljqbIrmIJ41m4O5iGYK5FAwBp0ikag7mqbI+GoCwyEyPgpBCQwO' + 
	'j0KRBGKFgpnAbAjXWMQ8EaeIuG6a5SHWHZxFyBoIjEbA8FQCJJmiZAmmOORwHyCwXgkbwqn8LYoDKOZNAmJpinyOzTm8aZrBWH5QhGAxCCedBMm8L5Fi+fAEFCPgvksV' + 
	'p0h8NQBn8RpLi7NQKBALxLHyF43EaDRPDOMoxkqXp4kYaRLlMTQIDWbQeguR5iluBxCBgNBCH6dIJnaSZjF+LQZgGQSh5DOFEa4dQsi5GILsaA8ReBuHoEYZ4ZwkDFFw' + 
	'JEYo2grjcHOFUAoFA7gJFqFEDYrQyilC+PwNgyRBBLH4C8FIzxiD8CeBYEgUQ9CtAiEwYgtQyDqDWPUTjBhXBrCmAcKoJQ6iGF6DEMA8BpieA4BgMQdxDg9GSOkLQgRC' + 
	'jhHiDMV4Ewfh3AoGULIiBujRAuJ0c4+gEi4ASOkRAfhWgjCKKEFACCAg');
		Add(5,'gBFLBCJwBAEHhEJAAChABGgDg6AADACAxRDQNABQKAAzQFAYZBwGiGAAGEaRWgmFgAQhFcZQSKUOQTDKMIziYBYJAKCQ3DTJUBjIKcIhiGsgAzAJIUaw1DqGY7nKZoRi' + 
	'oAIoSAMM7DCKUQSLGyQZqBSCQGjsAI+OyHAiABSNJwtHygIRoKqqHg2PoiSAEUZhdRlHShKSqLQiaIRSDUJZsW5EIyjBZ8EznOqbJApOKrCgOTYaWbUdSxPTEUwTFiXJ' + 
	'gmKRKIoiOAAY7IEgSFLsThrIKha5yDI4bxyAwXQjeYABbY0E4HQarcqzCrKGp/HYJXyAGgQHYkB5JAaQMBtGpoJrCeKQXDdVyXFwdET1BLZQA2HeUTTRVCScqnaTMZh8' + 
	'DgGxniKfYbngAxFkmVJAnSdougwDhRlMGZ1GEPR9HQapDGWWhyCMe4ugQDx9naYRvm6cQfAUJ47m8cofBYAZOGCHg2mETgCBCERAGkGJHEGVByBkUwUCSIgChAMQIE2B' + 
	'JRiQVQDAoEIWlWIxOgGBBcGyBQYlQXAkAcDpYh4KYKCKKI2CyC5ijONJvgySZ4lQWINkKCJmCWDpjkQaJPg+UA4joMYQiQI4eEYHAkgAYhKBgJJCh43JlAkEgwhSJA5E' + 
	'4VoVE6UQCFoL5lkkBhXhUCR5gYOQKAieYUneGZlEmJhfhqZYJFIWgQCWQp+F6GxigmHJ3BoJ4JmYMw7maKZSH6HxoAiQhvhwZ1VHYFAogmBIXiAZ55jKDIQgeChGG+G5' + 
	'BAoVJHiWaBYkIecznoOoeiMZYCj6IoYmcGhckeCophONoKh4aZagKLYrGkEZggeLJkCmThGDmZg5m6L4nmuOoCHaGJNnsBooAAIopCAcIZEiep2kqLwpnqCIviIBQLA4' + 
	'dolEECZakuK4sksYhYAgLZLOsQJLHuBBIjibR7haWYfGwawhAOJpmBuGpajuJRJkYbxAmgORynCOZvgqApejcAgIG4OYUA0e5em+PhokQXhKAYKx8AsCo+FEcJDA6D5M' + 
	'nwLwDkTWJulQQJuDEIphC2cQsHYbJEDCYJBAOLBrDIHwekUMBIiITgpmMcRhAOKYDgyRwnkyYwMjcK4cnAfAnCmSgzkoGhnkGZ45k6SIxjMTPIFCZOZEKSBxA0Fpui2b' + 
	'5LFoKIqGoaY/FKUY1gmdpQjOKxbBIV4zi0DQ6nmOhmFkUophCLILEMV5YiWCZkH+W5nl2HxfiiMwQmMTZOmqLhaLsx9iUH6JAMI1hCDjECFQawhghjBG2DseoGQzhNHw' + 
	'DwTAMAsgTEeCUZI1Q5jFHyLodYmWxB8GsPEVIPwxhSD6Awb4dgJD2HsAQQIoAQEB');
	end;
	Background[EXSWIMLANELib_TLB.exElementBackColor] := $ffffff;
	with Elements do
	begin
		Add('Rectangular',OleVariant(0),OleVariant(0)).Shape := EXSWIMLANELib_TLB.exShapeRectangular;
		Add('Round',OleVariant(82),OleVariant(0)).Shape := EXSWIMLANELib_TLB.exShapeRound;
		Add('Rhomb',OleVariant(138),OleVariant(0)).Shape := EXSWIMLANELib_TLB.exShapeRhomb;
		Add('Circle',OleVariant(196),OleVariant(0)).Shape := EXSWIMLANELib_TLB.exShapeCircle;
		with Add('EBN 1',OleVariant(0),OleVariant(36)) do
		begin
			BackColor := $1000000;
			Border := EXSWIMLANELib_TLB.exNoLines;
		end;
		with Add('EBN 2',OleVariant(54),OleVariant(36)) do
		begin
			BackColor := $2000000;
			Border := EXSWIMLANELib_TLB.exNoLines;
		end;
		with Add('EBN 3',OleVariant(108),OleVariant(36)) do
		begin
			BackColor := $3000000;
			Border := EXSWIMLANELib_TLB.exNoLines;
		end;
		with Add('EBN 4   ',OleVariant(160),OleVariant(36)) do
		begin
			BackColor := $4000000;
			Border := EXSWIMLANELib_TLB.exNoLines;
		end;
		with Add('EBN 5 ',OleVariant(220),OleVariant(36)) do
		begin
			BackColor := $5000000;
			MinHeight := 64;
			MinWidth := 64;
			Border := EXSWIMLANELib_TLB.exNoLines;
		end;
	end;
	ScrollPos[False] := -160;
	EndUpdate();
end
21:
Is it possible to add an inner control on the surface

// OleEvent event - Occurs once an inside control fires an event.
procedure TForm1.SwimLane1OleEvent(ASender: TObject; Element : IElement;Ev : IOleEvent);
begin
	with SwimLane1 do
	begin
		OutputDebugString( Ev );
	end
end;

with SwimLane1 do
begin
	with Elements do
	begin
		with Add('activex hosting',Null,Null) do
		begin
			Type := EXSWIMLANELib_TLB.exElementHostControl;
			Control := 'Forms.CommandButton.1';
			Caption := 'Command Button';
			Height := 64;
			Width := 128;
			ElementFormat := '14;"caption"/"client"';
			CaptionAlign := EXSWIMLANELib_TLB.exTopCenter;
		end;
	end;
end
20:
How can I create a copy of the element
with SwimLane1 do
begin
	Background[EXSWIMLANELib_TLB.exElementBackColor] := $ffffff;
	Elements.Add('Element 1',OleVariant(0),OleVariant(0)).Copy(Null,Null).Caption := 'Aka';
end
19:
How can I define an opaque background for elements

with SwimLane1 do
begin
	Background[EXSWIMLANELib_TLB.exElementBackColor] := $ffffff;
	Elements.Add('Element 1',OleVariant(0),OleVariant(0));
	Elements.Add('Element 2',OleVariant(16),OleVariant(16));
end
18:
How can I show a different context-menu for all elements
// ActionContextMenu event - Occurs when the user selects an item from the object's context menu.
procedure TForm1.SwimLane1ActionContextMenu(ASender: TObject; Action : ContextMenuObjectActionEnum;ObjectType : ContextMenuObjectTypeEnum;ObjectID : OleVariant;CommandID : Integer;CommandChecked : WordBool;CommandCaption : OleVariant;CommandValue : OleVariant;var Cancel : WordBool);
begin
	with SwimLane1 do
	begin
		OutputDebugString( Action );
		OutputDebugString( ObjectID );
		OutputDebugString( CommandID );
	end
end;

with SwimLane1 do
begin
	ContextMenu[EXSWIMLANELib_TLB.exContextMenuElement] := 'Item 1[id=1000],Item 2[id=2000]';
	Background[EXSWIMLANELib_TLB.exElementBackColor] := $ffffff;
	Elements.Add('Element 1',OleVariant(0),OleVariant(0));
	Elements.Add('Element 2',OleVariant(16),OleVariant(16));
end
17:
How can I show a different context-menu for element
with SwimLane1 do
begin
	OutputDebugString( Elements.Add('Element',OleVariant(0),OleVariant(0)).InvokeContextMenu('Item 1[id=1000],Item 2[id=2000]') );
end
16:
How can I change the design-modes being shown on the control's toolbar

with SwimLane1 do
begin
	DesignModes := 'Read-Only#0,Allow Any#3,Only-Element#1,Only-Pool#2';
end
15:
How can I change the default header's background color

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-250),OleVariant(-150),OleVariant(500),OleVariant(250)) do
	begin
		Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 4;
		Lane[EXSWIMLANELib_TLB.exLaneVertical].Children.Count := 4;
	end;
	Background[EXSWIMLANELib_TLB.exPoolHorizontalHeaderBackColor] := $ff00;
	Background[EXSWIMLANELib_TLB.exPoolVerticalHeaderBackColor] := $c000;
	EndUpdate();
end
14:
How can I remove the Design item from the control's toolbar, to be locked ( no-design )

with SwimLane1 do
begin
	ToolBarFormat := '-1,100,101';
	DesignMode := EXSWIMLANELib_TLB.exDesignLock;
end
13:
How can I remove/disable the Color and Display-Grid from the surface's context menu

with SwimLane1 do
begin
	ContextMenu[EXSWIMLANELib_TLB.exContextMenuSurface] := 'Delete[id=-32004](All[id=-32000][ttp=Deletes all the objects from the surface],[sep],Elements[id=-32001][ttp=Deletes all element' + 
	's from the surface],Links[id=-32002][ttp=Deletes all links from the surface],Pools[id=-32003][ttp=Deletes all pools from the sur' + 
	'face])';
end
12:
How can I change the element's context-menu when the user right-clicks the element

// ActionContextMenu event - Occurs when the user selects an item from the object's context menu.
procedure TForm1.SwimLane1ActionContextMenu(ASender: TObject; Action : ContextMenuObjectActionEnum;ObjectType : ContextMenuObjectTypeEnum;ObjectID : OleVariant;CommandID : Integer;CommandChecked : WordBool;CommandCaption : OleVariant;CommandValue : OleVariant;var Cancel : WordBool);
begin
	// ContextMenuObjectFromID(ObjectType,ObjectID).BackColor = RGB(255,255,0)
	with SwimLane1 do
	begin
		OutputDebugString( Action );
		OutputDebugString( CommandCaption );
	end
end;

with SwimLane1 do
begin
	BeginUpdate();
	Elements.Add('element',OleVariant(0),OleVariant(0));
	ContextMenu[EXSWIMLANELib_TLB.exContextMenuElement] := 'Simple,Value[edit=123],[sep],Popup(Check 1[chk],Check 2[chk=1])';
	EndUpdate();
end
11:
How do I prevent showing the context-menu when user right-clicks the surface
with SwimLane1 do
begin
	ContextMenu[EXSWIMLANELib_TLB.exContextMenuSurface] := '';
end
10:
How do I create parent-child (tree) lanes

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-250),OleVariant(-150),OleVariant(500),OleVariant(250)) do
	begin
		HeaderSize[EXSWIMLANELib_TLB.exHeaderTop] := 32;
		HeaderVisible[EXSWIMLANELib_TLB.exHeaderBottom] := False;
		with Lane[EXSWIMLANELib_TLB.exLaneVertical].Children do
		begin
			Count := 2;
			with item[OleVariant(0)].Children do
			begin
				Count := 2;
				item[OleVariant(0)].Header.Caption := 'Phase <b>1.1';
				item[OleVariant(1)].Header.Caption := 'Phase <b>1.2';
			end;
		end;
	end;
	EndUpdate();
end
9:
How do I create a pool with horizontal and lanes

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-250),OleVariant(-150),OleVariant(500),OleVariant(250)) do
	begin
		Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 4;
		Lane[EXSWIMLANELib_TLB.exLaneVertical].Children.Count := 4;
	end;
	EndUpdate();
end
8:
How do I add programatically a pool with horizontal lanes

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-250),OleVariant(-150),OleVariant(500),OleVariant(250)) do
	begin
		Lane[EXSWIMLANELib_TLB.exLaneHorizontal].Children.Count := 4;
	end;
	EndUpdate();
end
7:
How do I add programatically a pool with vertical lanes

with SwimLane1 do
begin
	BeginUpdate();
	with Pools.Add(OleVariant(-250),OleVariant(-150),OleVariant(500),OleVariant(250)) do
	begin
		Lane[EXSWIMLANELib_TLB.exLaneVertical].Children.Count := 4;
	end;
	EndUpdate();
end
6:
How can I change the toolbar's visual appearance

with SwimLane1 do
begin
	VisualAppearance.Add(1,'c:\exontrol\images\normal.ebn');
	Background[EXSWIMLANELib_TLB.exToolBarAppearance] := $1000000;
	Background[EXSWIMLANELib_TLB.exToolBarBackColor] := $ffffff;
	Background[EXSWIMLANELib_TLB.exToolBarForeColor] := $282828;
	Background[EXSWIMLANELib_TLB.exToolBarButtonDownBackColor] := $1606060;
	Background[EXSWIMLANELib_TLB.exToolBarButtonDownForeColor] := $f0f0f0;
	Background[EXSWIMLANELib_TLB.exToolBarButtonHotBackColor] := $1a0a0a0;
	Background[EXSWIMLANELib_TLB.exToolBarButtonHotForeColor] := $ffffff;
end
5:
How can I change the toolbar's background color

with SwimLane1 do
begin
	Background[EXSWIMLANELib_TLB.exToolBarBackColor] := $ffffff;
end
4:
How can I fit or ensure that all elements are in the control's client area
with SwimLane1 do
begin
	with Elements do
	begin
		Add('Element A',OleVariant(-500),OleVariant(-500)).BackColor := $ff00;
		Add('Element B',OleVariant(500),OleVariant(500)).BackColor := $ff;
		Add('Element C',OleVariant(48),OleVariant(24));
	end;
	FitToClient();
end
3:
Context Menu - Microsoft Windows 8.1 - Ribbon Like

with SwimLane1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_background.ebn');
		Add(2,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_groupt.ebn');
		Add(12,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_hot.ebn');
		Add(14,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_select.ebn');
		Add(17,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tab.ebn');
		Add(18,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_tabhot.ebn');
		Add(30,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio0.ebn');
		Add(31,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_radio1.ebn');
		Add(32,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check0.ebn');
		Add(33,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_check1.ebn');
		Add(34,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttonu.ebn');
		Add(35,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSFlat-Ribbon/msfr_buttond.ebn');
	end;
	Background[EXSWIMLANELib_TLB.exContextMenuAppearance] := $1000000;
	Background[EXSWIMLANELib_TLB.exToolTipAppearance] := $1fefefe;
	Background[EXSWIMLANELib_TLB.exContextMenuSelBackColor] := $e000000;
	Background[EXSWIMLANELib_TLB.exToolBarAppearance] := $1000000;
	Background[EXSWIMLANELib_TLB.exToolBarBackColor] := $ffffff;
	Background[EXSWIMLANELib_TLB.exToolBarButtonHotBackColor] := $c000000;
	Background[EXSWIMLANELib_TLB.exToolBarButtonDownBackColor] := $e000000;
	Background[EXSWIMLANELib_TLB.exContextMenuHotBackColor] := $c000000;
	Background[EXSWIMLANELib_TLB.exContextMenuSelHotBackColor] := $23000000;
	Background[EXSWIMLANELib_TLB.BackgroundPartEnum($2)] := $22000000;
	Background[EXSWIMLANELib_TLB.BackgroundPartEnum($3)] := $23000000;
	Background[EXSWIMLANELib_TLB.exCheckBoxState0] := $20000000;
	Background[EXSWIMLANELib_TLB.exCheckBoxState1] := $21000000;
	Background[EXSWIMLANELib_TLB.exRadioButtonState0] := $1e000000;
	Background[EXSWIMLANELib_TLB.exRadioButtonState1] := $1f000000;
	EndUpdate();
end
2:
Context Menu - Microsoft Paint - Ribbon Like

with SwimLane1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_background.ebn');
		Add(2,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupt.ebn');
		Add(3,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_groupo.ebn');
		Add(4,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_grouphot.ebn');
		Add(5,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameh.ebn');
		Add(6,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehs.ebn');
		Add(7,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehi.ebn');
		Add(8,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framehe.ebn');
		Add(9,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevs.ebn');
		Add(10,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_framevi.ebn');
		Add(11,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_frameve.ebn');
		Add(12,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_select.ebn');
		Add(13,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_bordert.ebn');
		Add(14,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttond.ebn');
		Add(15,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_buttonu.ebn');
		Add(16,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tab.ebn');
		Add(17,'CP:16 0 0 0 1');
		Add(18,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabhot.ebn');
		Add(19,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSPaint-Ribbon/mspr_tabselhot.ebn');
		Add(20,'CP:19 0 0 0 1');
	end;
	Background[EXSWIMLANELib_TLB.exContextMenuAppearance] := $1000000;
	Background[EXSWIMLANELib_TLB.exContextMenuForeColor] := $8b4215;
	Background[EXSWIMLANELib_TLB.exContextMenuSelBackColor] := $e000000;
	Background[EXSWIMLANELib_TLB.exToolTipAppearance] := $1fefefe;
	Background[EXSWIMLANELib_TLB.exToolBarAppearance] := $1000000;
	Background[EXSWIMLANELib_TLB.exToolBarBackColor] := $ffffff;
	Background[EXSWIMLANELib_TLB.exToolBarButtonHotBackColor] := $d000000;
	Background[EXSWIMLANELib_TLB.exToolBarButtonDownBackColor] := $1000000;
	Background[EXSWIMLANELib_TLB.BackgroundPartEnum($2)] := $d000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameSingle] := $5000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameHStart] := $6000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameHIntermediate] := $7000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameHEnd] := $8000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameVStart] := $9000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameVIntermediate] := $a000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameVEnd] := $b000000;
	Background[EXSWIMLANELib_TLB.exContextMenuHotBackColor] := $c000000;
	Background[EXSWIMLANELib_TLB.exContextMenuSelHotBackColor] := $f000000;
	EndUpdate();
end
1:
Context Menu - Microsoft Office - Ribbon Like

with SwimLane1 do
begin
	BeginUpdate();
	with VisualAppearance do
	begin
		Add(1,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_background.ebn');
		Add(2,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupt.ebn');
		Add(3,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_groupo.ebn');
		Add(4,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_grouphot.ebn');
		Add(5,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameh.ebn');
		Add(6,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehs.ebn');
		Add(7,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehi.ebn');
		Add(8,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framehe.ebn');
		Add(9,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevs.ebn');
		Add(10,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_framevi.ebn');
		Add(11,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_frameve.ebn');
		Add(12,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_select.ebn');
		Add(13,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_bordert.ebn');
		Add(14,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttond.ebn');
		Add(15,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_buttonu.ebn');
		Add(16,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tab.ebn');
		Add(17,'CP:16 0 0 0 1');
		Add(18,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabhot.ebn');
		Add(19,'C:/Program Files/Exontrol/ExSwimLane/Sample/EBN/MSOffice-Ribbon/msor_tabselhot.ebn');
		Add(20,'CP:19 0 0 0 1');
	end;
	Background[EXSWIMLANELib_TLB.exContextMenuAppearance] := $1000000;
	Background[EXSWIMLANELib_TLB.exContextMenuForeColor] := $8b4215;
	Background[EXSWIMLANELib_TLB.exToolTipAppearance] := $1fefefe;
	Background[EXSWIMLANELib_TLB.exToolBarAppearance] := $1000000;
	Background[EXSWIMLANELib_TLB.exToolBarBackColor] := $ffffff;
	Background[EXSWIMLANELib_TLB.exToolBarButtonHotBackColor] := $d000000;
	Background[EXSWIMLANELib_TLB.exToolBarButtonDownBackColor] := $1000000;
	Background[EXSWIMLANELib_TLB.BackgroundPartEnum($2)] := $d000000;
	Background[EXSWIMLANELib_TLB.BackgroundPartEnum($3)] := $1000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameSingle] := $5000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameHStart] := $6000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameHIntermediate] := $7000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameHEnd] := $8000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameVStart] := $9000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameVIntermediate] := $a000000;
	Background[EXSWIMLANELib_TLB.exContextMenuGroupPopupFrameVEnd] := $b000000;
	Background[EXSWIMLANELib_TLB.exContextMenuHotBackColor] := $c000000;
	Background[EXSWIMLANELib_TLB.exContextMenuSelBackColor] := $e000000;
	Background[EXSWIMLANELib_TLB.exContextMenuSelHotBackColor] := $f000000;
	EndUpdate();
end