method Items.Add (Caption as String, [Image as Variant], [Type as Variant])
Adds an Item object and returns a reference to the newly created object.

TypeDescription
Caption as String A String expression that specifies the item's caption to be added. The Caption parameter supports HTML as described in the Caption property.
Image as Variant A VARIANT expression that specifies the image to be shown on the item. The Image parameter could be:
  • A String expression indicates:
    • a name of a picture file in the PicturePath folder. For instance, Image(exRadialItems) = "favorites.png", loads the favorites.png file if found in the PicturePath folder.
    • a picture file including its absolute path. For instance, Image(exRadialItems) = "C:\Program Files\Exontrol\ExRadialMenu\Sample\Images\favorites.png", loads the favorites.png file from absolute path
    • a key of the HTML picture, previously loaded by the HTMLPicture method. For instance, Image(exRadialItems) = "pic1", loads the HTML picture with the key pic1, so the pic1 should be load previously with a HTMLPicture call like HTMLPicture("pic1") = "C:\Program Files\Exontrol\ExRadialMenu\Sample\Images\favorites.png"
    • an encode BASE64 string of a picture file. The Exontrol's ExImages Tool encode/decode BASE64 strings from/to pictures. In this case, the string starts with "gB..", "gC.." and so on.
  • A Picture object that indicates the picture to be displayed. For instance, Image(exRadialItems) = LoadPicture("picture.jpg")
  • a long/string expression that specifies the index of the icon to be displayed (0-based). The Images method loads icons into the control. Use the ReplaceIcon method to add, remove or clear icons in the control's images collection.

If no icon/picture/image is found, the item displays no icon/picture/image.

Type as Variant A RadialItemsEnum expression that specifies the portion of the item to be changed. If missing, the exRadialItems value is used instead, so the items portion of the item is changed.
ReturnDescription
ItemAn Item object being added.
The user can add new items to the control using any of the following:

The BrowseType property specifies what the item displays, when the user clicks/browses it.  The BrowseCustomType property indicates the custom object to be shown when the user clicks/browses the item ( child, radial-slider or gauge ). The BrowseCustom property gets or sets a value for specified property, when browsing custom control.

The Clear method clears all items from the collection. The Count property specifies the number of items in the collection. The Item property accesses an item based on its index or name. The Remove method removes an item from the collection.

The following samples show how you can add new items / child items to the control:

VBA (MS Access, Excell...)

With RadialMenu1
	.BeginUpdate 
	.Expanded = True
	With .Items
		With .Add("Item 1").Items
			.Add "SubItem 1"
			.Add "SubItem 2"
		End With
		.Add "Item 2"
		.Add "Item 3"
		.Add "Item 4"
		.Add "Item 5"
		.Add "Item 6"
		.Add "Item 7"
		.Add "Item 8"
	End With
	.EndUpdate 
End With

VB6

With RadialMenu1
	.BeginUpdate 
	.Expanded = True
	With .Items
		With .Add("Item 1").Items
			.Add "SubItem 1"
			.Add "SubItem 2"
		End With
		.Add "Item 2"
		.Add "Item 3"
		.Add "Item 4"
		.Add "Item 5"
		.Add "Item 6"
		.Add "Item 7"
		.Add "Item 8"
	End With
	.EndUpdate 
End With

VB.NET

With Exradialmenu1
	.BeginUpdate()
	.Expanded = True
	With .Items
		With .Add("Item 1").Items
			.Add("SubItem 1")
			.Add("SubItem 2")
		End With
		.Add("Item 2")
		.Add("Item 3")
		.Add("Item 4")
		.Add("Item 5")
		.Add("Item 6")
		.Add("Item 7")
		.Add("Item 8")
	End With
	.EndUpdate()
End With

VB.NET for /COM

With AxRadialMenu1
	.BeginUpdate()
	.Expanded = True
	With .Items
		With .Add("Item 1").Items
			.Add("SubItem 1")
			.Add("SubItem 2")
		End With
		.Add("Item 2")
		.Add("Item 3")
		.Add("Item 4")
		.Add("Item 5")
		.Add("Item 6")
		.Add("Item 7")
		.Add("Item 8")
	End With
	.EndUpdate()
End With

C++

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

	#import <ExRadialMenu.dll>
	using namespace EXRADIALMENULib;
*/
EXRADIALMENULib::IRadialMenuPtr spRadialMenu1 = GetDlgItem(IDC_RADIALMENU1)->GetControlUnknown();
spRadialMenu1->BeginUpdate();
spRadialMenu1->PutExpanded(VARIANT_TRUE);
EXRADIALMENULib::IItemsPtr var_Items = spRadialMenu1->GetItems();
	EXRADIALMENULib::IItemsPtr var_Items1 = var_Items->Add(L"Item 1",vtMissing,vtMissing)->GetItems();
		var_Items1->Add(L"SubItem 1",vtMissing,vtMissing);
		var_Items1->Add(L"SubItem 2",vtMissing,vtMissing);
	var_Items->Add(L"Item 2",vtMissing,vtMissing);
	var_Items->Add(L"Item 3",vtMissing,vtMissing);
	var_Items->Add(L"Item 4",vtMissing,vtMissing);
	var_Items->Add(L"Item 5",vtMissing,vtMissing);
	var_Items->Add(L"Item 6",vtMissing,vtMissing);
	var_Items->Add(L"Item 7",vtMissing,vtMissing);
	var_Items->Add(L"Item 8",vtMissing,vtMissing);
spRadialMenu1->EndUpdate();

C++ Builder

RadialMenu1->BeginUpdate();
RadialMenu1->Expanded = true;
Exradialmenulib_tlb::IItemsPtr var_Items = RadialMenu1->Items;
	Exradialmenulib_tlb::IItemsPtr var_Items1 = var_Items->Add(L"Item 1",TNoParam(),TNoParam())->Items;
		var_Items1->Add(L"SubItem 1",TNoParam(),TNoParam());
		var_Items1->Add(L"SubItem 2",TNoParam(),TNoParam());
	var_Items->Add(L"Item 2",TNoParam(),TNoParam());
	var_Items->Add(L"Item 3",TNoParam(),TNoParam());
	var_Items->Add(L"Item 4",TNoParam(),TNoParam());
	var_Items->Add(L"Item 5",TNoParam(),TNoParam());
	var_Items->Add(L"Item 6",TNoParam(),TNoParam());
	var_Items->Add(L"Item 7",TNoParam(),TNoParam());
	var_Items->Add(L"Item 8",TNoParam(),TNoParam());
RadialMenu1->EndUpdate();

C#

exradialmenu1.BeginUpdate();
exradialmenu1.Expanded = true;
exontrol.EXRADIALMENULib.Items var_Items = exradialmenu1.Items;
	exontrol.EXRADIALMENULib.Items var_Items1 = var_Items.Add("Item 1",null,null).Items;
		var_Items1.Add("SubItem 1",null,null);
		var_Items1.Add("SubItem 2",null,null);
	var_Items.Add("Item 2",null,null);
	var_Items.Add("Item 3",null,null);
	var_Items.Add("Item 4",null,null);
	var_Items.Add("Item 5",null,null);
	var_Items.Add("Item 6",null,null);
	var_Items.Add("Item 7",null,null);
	var_Items.Add("Item 8",null,null);
exradialmenu1.EndUpdate();

JScript/JavaScript

<BODY onload="Init()">
<OBJECT CLASSID="clsid:1604BDE1-D48F-4D3F-B51B-49C0CD74236C" id="RadialMenu1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	RadialMenu1.BeginUpdate();
	RadialMenu1.Expanded = true;
	var var_Items = RadialMenu1.Items;
		var var_Items1 = var_Items.Add("Item 1",null,null).Items;
			var_Items1.Add("SubItem 1",null,null);
			var_Items1.Add("SubItem 2",null,null);
		var_Items.Add("Item 2",null,null);
		var_Items.Add("Item 3",null,null);
		var_Items.Add("Item 4",null,null);
		var_Items.Add("Item 5",null,null);
		var_Items.Add("Item 6",null,null);
		var_Items.Add("Item 7",null,null);
		var_Items.Add("Item 8",null,null);
	RadialMenu1.EndUpdate();
}
</SCRIPT>
</BODY>

VBScript

<BODY onload="Init()">
<OBJECT CLASSID="clsid:1604BDE1-D48F-4D3F-B51B-49C0CD74236C" id="RadialMenu1"></OBJECT>

<SCRIPT LANGUAGE="VBScript">
Function Init()
	With RadialMenu1
		.BeginUpdate 
		.Expanded = True
		With .Items
			With .Add("Item 1").Items
				.Add "SubItem 1"
				.Add "SubItem 2"
			End With
			.Add "Item 2"
			.Add "Item 3"
			.Add "Item 4"
			.Add "Item 5"
			.Add "Item 6"
			.Add "Item 7"
			.Add "Item 8"
		End With
		.EndUpdate 
	End With
End Function
</SCRIPT>
</BODY>

C# for /COM

axRadialMenu1.BeginUpdate();
axRadialMenu1.Expanded = true;
EXRADIALMENULib.Items var_Items = axRadialMenu1.Items;
	EXRADIALMENULib.Items var_Items1 = var_Items.Add("Item 1",null,null).Items;
		var_Items1.Add("SubItem 1",null,null);
		var_Items1.Add("SubItem 2",null,null);
	var_Items.Add("Item 2",null,null);
	var_Items.Add("Item 3",null,null);
	var_Items.Add("Item 4",null,null);
	var_Items.Add("Item 5",null,null);
	var_Items.Add("Item 6",null,null);
	var_Items.Add("Item 7",null,null);
	var_Items.Add("Item 8",null,null);
axRadialMenu1.EndUpdate();

X++ (Dynamics Ax 2009)

public void init()
{
	COM com_Item,com_Items,com_Items1;
	anytype var_Item,var_Items,var_Items1;
	;

	super();

	exradialmenu1.BeginUpdate();
	exradialmenu1.Expanded(true);
	var_Items = exradialmenu1.Items(); com_Items = var_Items;
		var_Item = COM::createFromObject(com_Items.Add("Item 1")); com_Item = var_Item;
		var_Items1 = com_Item.Items(); com_Items1 = var_Items1;
			com_Items1.Add("SubItem 1");
			com_Items1.Add("SubItem 2");
		com_Items.Add("Item 2");
		com_Items.Add("Item 3");
		com_Items.Add("Item 4");
		com_Items.Add("Item 5");
		com_Items.Add("Item 6");
		com_Items.Add("Item 7");
		com_Items.Add("Item 8");
	exradialmenu1.EndUpdate();
}

Delphi 8 (.NET only)

with AxRadialMenu1 do
begin
	BeginUpdate();
	Expanded := True;
	with Items do
	begin
		with Add('Item 1',Nil,Nil).Items do
		begin
			Add('SubItem 1',Nil,Nil);
			Add('SubItem 2',Nil,Nil);
		end;
		Add('Item 2',Nil,Nil);
		Add('Item 3',Nil,Nil);
		Add('Item 4',Nil,Nil);
		Add('Item 5',Nil,Nil);
		Add('Item 6',Nil,Nil);
		Add('Item 7',Nil,Nil);
		Add('Item 8',Nil,Nil);
	end;
	EndUpdate();
end

Delphi (standard)

with RadialMenu1 do
begin
	BeginUpdate();
	Expanded := True;
	with Items do
	begin
		with Add('Item 1',Null,Null).Items do
		begin
			Add('SubItem 1',Null,Null);
			Add('SubItem 2',Null,Null);
		end;
		Add('Item 2',Null,Null);
		Add('Item 3',Null,Null);
		Add('Item 4',Null,Null);
		Add('Item 5',Null,Null);
		Add('Item 6',Null,Null);
		Add('Item 7',Null,Null);
		Add('Item 8',Null,Null);
	end;
	EndUpdate();
end

VFP

with thisform.RadialMenu1
	.BeginUpdate
	.Expanded = .T.
	with .Items
		with .Add("Item 1").Items
			.Add("SubItem 1")
			.Add("SubItem 2")
		endwith
		.Add("Item 2")
		.Add("Item 3")
		.Add("Item 4")
		.Add("Item 5")
		.Add("Item 6")
		.Add("Item 7")
		.Add("Item 8")
	endwith
	.EndUpdate
endwith

dBASE Plus

local oRadialMenu,var_Items,var_Items1

oRadialMenu = form.EXRADIALMENUACTIVEXCONTROL1.nativeObject
oRadialMenu.BeginUpdate()
oRadialMenu.Expanded = true
var_Items = oRadialMenu.Items
	var_Items1 = var_Items.Add("Item 1").Items
		var_Items1.Add("SubItem 1")
		var_Items1.Add("SubItem 2")
	var_Items.Add("Item 2")
	var_Items.Add("Item 3")
	var_Items.Add("Item 4")
	var_Items.Add("Item 5")
	var_Items.Add("Item 6")
	var_Items.Add("Item 7")
	var_Items.Add("Item 8")
oRadialMenu.EndUpdate()

XBasic (Alpha Five)

Dim oRadialMenu as P
Dim var_Items as P
Dim var_Items1 as P

oRadialMenu = topparent:CONTROL_ACTIVEX1.activex
oRadialMenu.BeginUpdate()
oRadialMenu.Expanded = .t.
var_Items = oRadialMenu.Items
	var_Items1 = var_Items.Add("Item 1").Items
		var_Items1.Add("SubItem 1")
		var_Items1.Add("SubItem 2")
	var_Items.Add("Item 2")
	var_Items.Add("Item 3")
	var_Items.Add("Item 4")
	var_Items.Add("Item 5")
	var_Items.Add("Item 6")
	var_Items.Add("Item 7")
	var_Items.Add("Item 8")
oRadialMenu.EndUpdate()

Visual Objects

local var_Items,var_Items1 as IItems

oDCOCX_Exontrol1:BeginUpdate()
oDCOCX_Exontrol1:Expanded := true
var_Items := oDCOCX_Exontrol1:Items
	var_Items1 := var_Items:Add("Item 1",nil,nil):Items
		var_Items1:Add("SubItem 1",nil,nil)
		var_Items1:Add("SubItem 2",nil,nil)
	var_Items:Add("Item 2",nil,nil)
	var_Items:Add("Item 3",nil,nil)
	var_Items:Add("Item 4",nil,nil)
	var_Items:Add("Item 5",nil,nil)
	var_Items:Add("Item 6",nil,nil)
	var_Items:Add("Item 7",nil,nil)
	var_Items:Add("Item 8",nil,nil)
oDCOCX_Exontrol1:EndUpdate()

PowerBuilder

OleObject oRadialMenu,var_Items,var_Items1

oRadialMenu = ole_1.Object
oRadialMenu.BeginUpdate()
oRadialMenu.Expanded = true
var_Items = oRadialMenu.Items
	var_Items1 = var_Items.Add("Item 1").Items
		var_Items1.Add("SubItem 1")
		var_Items1.Add("SubItem 2")
	var_Items.Add("Item 2")
	var_Items.Add("Item 3")
	var_Items.Add("Item 4")
	var_Items.Add("Item 5")
	var_Items.Add("Item 6")
	var_Items.Add("Item 7")
	var_Items.Add("Item 8")
oRadialMenu.EndUpdate()

Visual DataFlex

Procedure OnCreate
	Forward Send OnCreate
	Send ComBeginUpdate
	Set ComExpanded to True
	Variant voItems
	Get ComItems to voItems
	Handle hoItems
	Get Create (RefClass(cComItems)) to hoItems
	Set pvComObject of hoItems to voItems
		Variant voItem
		Get ComAdd of hoItems "Item 1" Nothing Nothing to voItem
		Handle hoItem
		Get Create (RefClass(cComItem)) to hoItem
		Set pvComObject of hoItem to voItem
			Variant voItems1
			Get ComItems of hoItem to voItems1
			Handle hoItems1
			Get Create (RefClass(cComItems)) to hoItems1
			Set pvComObject of hoItems1 to voItems1
				Get ComAdd of hoItems1 "SubItem 1" Nothing Nothing to Nothing
				Get ComAdd of hoItems1 "SubItem 2" Nothing Nothing to Nothing
			Send Destroy to hoItems1
		Send Destroy to hoItem
		Get ComAdd of hoItems "Item 2" Nothing Nothing to Nothing
		Get ComAdd of hoItems "Item 3" Nothing Nothing to Nothing
		Get ComAdd of hoItems "Item 4" Nothing Nothing to Nothing
		Get ComAdd of hoItems "Item 5" Nothing Nothing to Nothing
		Get ComAdd of hoItems "Item 6" Nothing Nothing to Nothing
		Get ComAdd of hoItems "Item 7" Nothing Nothing to Nothing
		Get ComAdd of hoItems "Item 8" Nothing Nothing to Nothing
	Send Destroy to hoItems
	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 oItems,oItems1
	LOCAL oRadialMenu

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

	oRadialMenu := XbpActiveXControl():new( oForm:drawingArea )
	oRadialMenu:CLSID  := "Exontrol.RadialMenu.1" /*{1604BDE1-D48F-4D3F-B51B-49C0CD74236C}*/
	oRadialMenu:create(,, {10,60},{610,370} )

		oRadialMenu:BeginUpdate()
		oRadialMenu:Expanded := .T.
		oItems := oRadialMenu:Items()
			oItems1 := oItems:Add("Item 1"):Items()
				oItems1:Add("SubItem 1")
				oItems1:Add("SubItem 2")
			oItems:Add("Item 2")
			oItems:Add("Item 3")
			oItems:Add("Item 4")
			oItems:Add("Item 5")
			oItems:Add("Item 6")
			oItems:Add("Item 7")
			oItems:Add("Item 8")
		oRadialMenu:EndUpdate()

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