property Item.HasRadioButton(ColIndex as Variant) as Boolean
Retrieves or sets a value indicating whether the cell has a radiobutton associated or not.

TypeDescription
ColIndex as Variant A Long expression that specifies the index of the column, or A String expression that specifies the name of the column to display/hide the radio-button.
Boolean A Boolean expression that specifies whether the cell's radio-button is visible or hidden.

By default, the HasRadioButton property is False. The HasRadioButton property shows or hides the cell's radio-button. The RadioGroup property arranges multiple radio-buttons to the same group. The State property of the Item indicates the state of the radio-button. The RadioButtonWidth / RadioButtonHeight property specifies the size of the radio-button. The Background(exRadioButtonState0) / Background(exRadioButtonState1) property specifies the visual appearance of the radio-button. The FaceTreeStateChanged event notifies when the state of the check-box or a radio-button is changed. The Def(exCellHasCheckBox) property of the Column, assign check-boxes to all cells in the column. The PartialCheck property indicates whether the column supports three-state check-boxes ( unchecked, checked and partial states). The HasCheckBox property shows or hides the cell's check-box. The State property of the Item indicates the state of the check-box. The CheckBoxWidth / CheckBoxHeight property specifies the size of the check-box. The Background(exCheckBoxState0) / Background(exCheckBoxState1) / Background(exCheckBoxState2) property specifies the visual appearance of the check-box. The Def(exCellHasRadioButton) property of the Column, assign radio-buttons to all cells in the column.

How can I display two lists of radio-buttons?

VBA (MS Access, Excell...)

' FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
Private Sub TreeCube1_FaceTreeStateChanged(ByVal Tree As Object,ByVal Item As Long,ByVal Column As Long)
	With TreeCube1
		With .FrontFace.FaceTree.ItemByIndex(Item)
			Debug.Print( "State" )
			Debug.Print( .State(0) )
		End With
	End With
End Sub

With TreeCube1
	.TexturePicturePath = ""
	With .FrontFace.CreateTree
		.HeaderVisible = False
		.ItemPadding = 16
		.DrawGridLines = 0
		.Columns.Add("Radio").Alignment = 0
		With .Items
			With .Add("Group A")
				With .Items
					With .Add("Radio <b>1")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
					End With
					With .Add("Radio <b>2")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
						.State(0) = 1
					End With
					With .Add("Radio <b>3")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
					End With
				End With
				.Expanded = True
			End With
			With .Add("Group B")
				With .Items
					With .Add("Radio <b>1")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
					End With
					With .Add("Radio <b>2")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
					End With
					With .Add("Radio <b>3")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
						.State(0) = 1
					End With
				End With
				.Expanded = True
			End With
		End With
	End With
End With

VB6

' FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
Private Sub TreeCube1_FaceTreeStateChanged(ByVal Tree As EXTREECUBELibCtl.IFaceTree,ByVal Item As Long,ByVal Column As Long)
	With TreeCube1
		With .FrontFace.FaceTree.ItemByIndex(Item)
			Debug.Print( "State" )
			Debug.Print( .State(0) )
		End With
	End With
End Sub

With TreeCube1
	.TexturePicturePath = ""
	With .FrontFace.CreateTree
		.HeaderVisible = False
		.ItemPadding = 16
		.DrawGridLines = exNoLines
		.Columns.Add("Radio").Alignment = LeftAlignment
		With .Items
			With .Add("Group A")
				With .Items
					With .Add("Radio <b>1")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
					End With
					With .Add("Radio <b>2")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
						.State(0) = 1
					End With
					With .Add("Radio <b>3")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
					End With
				End With
				.Expanded = True
			End With
			With .Add("Group B")
				With .Items
					With .Add("Radio <b>1")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
					End With
					With .Add("Radio <b>2")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
					End With
					With .Add("Radio <b>3")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
						.State(0) = 1
					End With
				End With
				.Expanded = True
			End With
		End With
	End With
End With

VB.NET

' FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
Private Sub Extreecube1_FaceTreeStateChanged(ByVal sender As System.Object,ByVal Tree As exontrol.EXTREECUBELib.FaceTree,ByVal Item As Integer,ByVal Column As Integer) Handles Extreecube1.FaceTreeStateChanged
	With Extreecube1
		With .FrontFace.FaceTree.get_ItemByIndex(Item)
			Debug.Print( "State" )
			Debug.Print( .get_State(0) )
		End With
	End With
End Sub

With Extreecube1
	.TexturePicturePath = ""
	With .FrontFace.CreateTree()
		.HeaderVisible = False
		.ItemPadding = 16
		.DrawGridLines = exontrol.EXTREECUBELib.GridLinesEnum.exNoLines
		.Columns.Add("Radio").Alignment = exontrol.EXTREECUBELib.AlignmentEnum.LeftAlignment
		With .Items
			With .Add("Group A")
				With .Items
					With .Add("Radio <b>1")
						.set_HasRadioButton(0,True)
						.set_RadioGroup(0,1234)
					End With
					With .Add("Radio <b>2")
						.set_HasRadioButton(0,True)
						.set_RadioGroup(0,1234)
						.set_State(0,1)
					End With
					With .Add("Radio <b>3")
						.set_HasRadioButton(0,True)
						.set_RadioGroup(0,1234)
					End With
				End With
				.Expanded = True
			End With
			With .Add("Group B")
				With .Items
					With .Add("Radio <b>1")
						.set_HasRadioButton(0,True)
						.set_RadioGroup(0,1235)
					End With
					With .Add("Radio <b>2")
						.set_HasRadioButton(0,True)
						.set_RadioGroup(0,1235)
					End With
					With .Add("Radio <b>3")
						.set_HasRadioButton(0,True)
						.set_RadioGroup(0,1235)
						.set_State(0,1)
					End With
				End With
				.Expanded = True
			End With
		End With
	End With
End With

VB.NET for /COM

' FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
Private Sub AxTreeCube1_FaceTreeStateChanged(ByVal sender As System.Object, ByVal e As AxEXTREECUBELib._ITreeCubeEvents_FaceTreeStateChangedEvent) Handles AxTreeCube1.FaceTreeStateChanged
	With AxTreeCube1
		With .FrontFace.FaceTree.ItemByIndex(e.item)
			Debug.Print( "State" )
			Debug.Print( .State(0) )
		End With
	End With
End Sub

With AxTreeCube1
	.TexturePicturePath = ""
	With .FrontFace.CreateTree()
		.HeaderVisible = False
		.ItemPadding = 16
		.DrawGridLines = EXTREECUBELib.GridLinesEnum.exNoLines
		.Columns.Add("Radio").Alignment = EXTREECUBELib.AlignmentEnum.LeftAlignment
		With .Items
			With .Add("Group A")
				With .Items
					With .Add("Radio <b>1")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
					End With
					With .Add("Radio <b>2")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
						.State(0) = 1
					End With
					With .Add("Radio <b>3")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1234
					End With
				End With
				.Expanded = True
			End With
			With .Add("Group B")
				With .Items
					With .Add("Radio <b>1")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
					End With
					With .Add("Radio <b>2")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
					End With
					With .Add("Radio <b>3")
						.HasRadioButton(0) = True
						.RadioGroup(0) = 1235
						.State(0) = 1
					End With
				End With
				.Expanded = True
			End With
		End With
	End With
End With

C++

// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
void OnFaceTreeStateChangedTreeCube1(LPDISPATCH   Tree,long   Item,long   Column)
{
	/*
		Copy and paste the following directives to your header file as
		it defines the namespace 'EXTREECUBELib' for the library: 'ExTreeCube 1.0 Control Library'
		#import <ExTreeCube.dll>
		using namespace EXTREECUBELib;
	*/
	EXTREECUBELib::ITreeCubePtr spTreeCube1 = GetDlgItem(IDC_TREECUBE1)->GetControlUnknown();
	EXTREECUBELib::IItemPtr var_Item = spTreeCube1->GetFrontFace()->GetFaceTree()->GetItemByIndex(Item);
		OutputDebugStringW( L"State" );
		OutputDebugStringW( _bstr_t(var_Item->GetState(long(0))) );
}

EXTREECUBELib::ITreeCubePtr spTreeCube1 = GetDlgItem(IDC_TREECUBE1)->GetControlUnknown();
spTreeCube1->PutTexturePicturePath(L"");
EXTREECUBELib::IFaceTreePtr var_FaceTree = spTreeCube1->GetFrontFace()->CreateTree();
	var_FaceTree->PutHeaderVisible(VARIANT_FALSE);
	var_FaceTree->PutItemPadding(16);
	var_FaceTree->PutDrawGridLines(EXTREECUBELib::exNoLines);
	var_FaceTree->GetColumns()->Add(L"Radio")->PutAlignment(EXTREECUBELib::LeftAlignment);
	EXTREECUBELib::IItemsPtr var_Items = var_FaceTree->GetItems();
		EXTREECUBELib::IItemPtr var_Item = var_Items->Add("Group A");
			EXTREECUBELib::IItemsPtr var_Items1 = var_Item->GetItems();
				EXTREECUBELib::IItemPtr var_Item1 = var_Items1->Add("Radio <b>1");
					var_Item1->PutHasRadioButton(long(0),VARIANT_TRUE);
					var_Item1->PutRadioGroup(long(0),1234);
				EXTREECUBELib::IItemPtr var_Item2 = var_Items1->Add("Radio <b>2");
					var_Item2->PutHasRadioButton(long(0),VARIANT_TRUE);
					var_Item2->PutRadioGroup(long(0),1234);
					var_Item2->PutState(long(0),1);
				EXTREECUBELib::IItemPtr var_Item3 = var_Items1->Add("Radio <b>3");
					var_Item3->PutHasRadioButton(long(0),VARIANT_TRUE);
					var_Item3->PutRadioGroup(long(0),1234);
			var_Item->PutExpanded(VARIANT_TRUE);
		EXTREECUBELib::IItemPtr var_Item4 = var_Items->Add("Group B");
			EXTREECUBELib::IItemsPtr var_Items2 = var_Item4->GetItems();
				EXTREECUBELib::IItemPtr var_Item5 = var_Items2->Add("Radio <b>1");
					var_Item5->PutHasRadioButton(long(0),VARIANT_TRUE);
					var_Item5->PutRadioGroup(long(0),1235);
				EXTREECUBELib::IItemPtr var_Item6 = var_Items2->Add("Radio <b>2");
					var_Item6->PutHasRadioButton(long(0),VARIANT_TRUE);
					var_Item6->PutRadioGroup(long(0),1235);
				EXTREECUBELib::IItemPtr var_Item7 = var_Items2->Add("Radio <b>3");
					var_Item7->PutHasRadioButton(long(0),VARIANT_TRUE);
					var_Item7->PutRadioGroup(long(0),1235);
					var_Item7->PutState(long(0),1);
			var_Item4->PutExpanded(VARIANT_TRUE);

C++ Builder

// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
void __fastcall TForm1::TreeCube1FaceTreeStateChanged(TObject *Sender,Extreecubelib_tlb::IFaceTree   *Tree,long   Item,long   Column)
{
	Extreecubelib_tlb::IItemPtr var_Item = TreeCube1->FrontFace->FaceTree->get_ItemByIndex(Item);
		OutputDebugString( L"State" );
		OutputDebugString( PChar(var_Item->get_State(TVariant(0))) );
}

TreeCube1->TexturePicturePath = L"";
Extreecubelib_tlb::IFaceTreePtr var_FaceTree = TreeCube1->FrontFace->CreateTree();
	var_FaceTree->HeaderVisible = false;
	var_FaceTree->ItemPadding = 16;
	var_FaceTree->DrawGridLines = Extreecubelib_tlb::GridLinesEnum::exNoLines;
	var_FaceTree->Columns->Add(L"Radio")->Alignment = Extreecubelib_tlb::AlignmentEnum::LeftAlignment;
	Extreecubelib_tlb::IItemsPtr var_Items = var_FaceTree->Items;
		Extreecubelib_tlb::IItemPtr var_Item = var_Items->Add(TVariant("Group A"));
			Extreecubelib_tlb::IItemsPtr var_Items1 = var_Item->Items;
				Extreecubelib_tlb::IItemPtr var_Item1 = var_Items1->Add(TVariant("Radio <b>1"));
					var_Item1->set_HasRadioButton(TVariant(0),true);
					var_Item1->set_RadioGroup(TVariant(0),1234);
				Extreecubelib_tlb::IItemPtr var_Item2 = var_Items1->Add(TVariant("Radio <b>2"));
					var_Item2->set_HasRadioButton(TVariant(0),true);
					var_Item2->set_RadioGroup(TVariant(0),1234);
					var_Item2->set_State(TVariant(0),1);
				Extreecubelib_tlb::IItemPtr var_Item3 = var_Items1->Add(TVariant("Radio <b>3"));
					var_Item3->set_HasRadioButton(TVariant(0),true);
					var_Item3->set_RadioGroup(TVariant(0),1234);
			var_Item->Expanded = true;
		Extreecubelib_tlb::IItemPtr var_Item4 = var_Items->Add(TVariant("Group B"));
			Extreecubelib_tlb::IItemsPtr var_Items2 = var_Item4->Items;
				Extreecubelib_tlb::IItemPtr var_Item5 = var_Items2->Add(TVariant("Radio <b>1"));
					var_Item5->set_HasRadioButton(TVariant(0),true);
					var_Item5->set_RadioGroup(TVariant(0),1235);
				Extreecubelib_tlb::IItemPtr var_Item6 = var_Items2->Add(TVariant("Radio <b>2"));
					var_Item6->set_HasRadioButton(TVariant(0),true);
					var_Item6->set_RadioGroup(TVariant(0),1235);
				Extreecubelib_tlb::IItemPtr var_Item7 = var_Items2->Add(TVariant("Radio <b>3"));
					var_Item7->set_HasRadioButton(TVariant(0),true);
					var_Item7->set_RadioGroup(TVariant(0),1235);
					var_Item7->set_State(TVariant(0),1);
			var_Item4->Expanded = true;

C#

// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
private void extreecube1_FaceTreeStateChanged(object sender,exontrol.EXTREECUBELib.FaceTree   Tree,int   Item,int   Column)
{
	exontrol.EXTREECUBELib.Item var_Item = extreecube1.FrontFace.FaceTree.get_ItemByIndex(Item);
		System.Diagnostics.Debug.Print( "State" );
		System.Diagnostics.Debug.Print( var_Item.get_State(0).ToString() );
}
//this.extreecube1.FaceTreeStateChanged += new exontrol.EXTREECUBELib.exg2antt.FaceTreeStateChangedEventHandler(this.extreecube1_FaceTreeStateChanged);

extreecube1.TexturePicturePath = "";
exontrol.EXTREECUBELib.FaceTree var_FaceTree = extreecube1.FrontFace.CreateTree();
	var_FaceTree.HeaderVisible = false;
	var_FaceTree.ItemPadding = 16;
	var_FaceTree.DrawGridLines = exontrol.EXTREECUBELib.GridLinesEnum.exNoLines;
	var_FaceTree.Columns.Add("Radio").Alignment = exontrol.EXTREECUBELib.AlignmentEnum.LeftAlignment;
	exontrol.EXTREECUBELib.Items var_Items = var_FaceTree.Items;
		exontrol.EXTREECUBELib.Item var_Item = var_Items.Add("Group A");
			exontrol.EXTREECUBELib.Items var_Items1 = var_Item.Items;
				exontrol.EXTREECUBELib.Item var_Item1 = var_Items1.Add("Radio <b>1");
					var_Item1.set_HasRadioButton(0,true);
					var_Item1.set_RadioGroup(0,1234);
				exontrol.EXTREECUBELib.Item var_Item2 = var_Items1.Add("Radio <b>2");
					var_Item2.set_HasRadioButton(0,true);
					var_Item2.set_RadioGroup(0,1234);
					var_Item2.set_State(0,1);
				exontrol.EXTREECUBELib.Item var_Item3 = var_Items1.Add("Radio <b>3");
					var_Item3.set_HasRadioButton(0,true);
					var_Item3.set_RadioGroup(0,1234);
			var_Item.Expanded = true;
		exontrol.EXTREECUBELib.Item var_Item4 = var_Items.Add("Group B");
			exontrol.EXTREECUBELib.Items var_Items2 = var_Item4.Items;
				exontrol.EXTREECUBELib.Item var_Item5 = var_Items2.Add("Radio <b>1");
					var_Item5.set_HasRadioButton(0,true);
					var_Item5.set_RadioGroup(0,1235);
				exontrol.EXTREECUBELib.Item var_Item6 = var_Items2.Add("Radio <b>2");
					var_Item6.set_HasRadioButton(0,true);
					var_Item6.set_RadioGroup(0,1235);
				exontrol.EXTREECUBELib.Item var_Item7 = var_Items2.Add("Radio <b>3");
					var_Item7.set_HasRadioButton(0,true);
					var_Item7.set_RadioGroup(0,1235);
					var_Item7.set_State(0,1);
			var_Item4.Expanded = true;

JScript/JavaScript

<BODY onload="Init()">
<SCRIPT FOR="TreeCube1" EVENT="FaceTreeStateChanged(Tree,Item,Column)" LANGUAGE="JScript">
	var var_Item = TreeCube1.FrontFace.FaceTree.ItemByIndex(Item);
		alert( "State" );
		alert( var_Item.State(0) );
</SCRIPT>

<OBJECT CLASSID="clsid:13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9" id="TreeCube1"></OBJECT>

<SCRIPT LANGUAGE="JScript">
function Init()
{
	TreeCube1.TexturePicturePath = "";
	var var_FaceTree = TreeCube1.FrontFace.CreateTree();
		var_FaceTree.HeaderVisible = false;
		var_FaceTree.ItemPadding = 16;
		var_FaceTree.DrawGridLines = 0;
		var_FaceTree.Columns.Add("Radio").Alignment = 0;
		var var_Items = var_FaceTree.Items;
			var var_Item = var_Items.Add("Group A");
				var var_Items1 = var_Item.Items;
					var var_Item1 = var_Items1.Add("Radio <b>1");
						var_Item1.HasRadioButton(0) = true;
						var_Item1.RadioGroup(0) = 1234;
					var var_Item2 = var_Items1.Add("Radio <b>2");
						var_Item2.HasRadioButton(0) = true;
						var_Item2.RadioGroup(0) = 1234;
						var_Item2.State(0) = 1;
					var var_Item3 = var_Items1.Add("Radio <b>3");
						var_Item3.HasRadioButton(0) = true;
						var_Item3.RadioGroup(0) = 1234;
				var_Item.Expanded = true;
			var var_Item4 = var_Items.Add("Group B");
				var var_Items2 = var_Item4.Items;
					var var_Item5 = var_Items2.Add("Radio <b>1");
						var_Item5.HasRadioButton(0) = true;
						var_Item5.RadioGroup(0) = 1235;
					var var_Item6 = var_Items2.Add("Radio <b>2");
						var_Item6.HasRadioButton(0) = true;
						var_Item6.RadioGroup(0) = 1235;
					var var_Item7 = var_Items2.Add("Radio <b>3");
						var_Item7.HasRadioButton(0) = true;
						var_Item7.RadioGroup(0) = 1235;
						var_Item7.State(0) = 1;
				var_Item4.Expanded = true;
}
</SCRIPT>
</BODY>

VBScript

<BODY onload="Init()">
<SCRIPT LANGUAGE="VBScript">
Function TreeCube1_FaceTreeStateChanged(Tree,Item,Column)
	With TreeCube1
		With .FrontFace.FaceTree.ItemByIndex(Item)
			alert( "State" )
			alert( .State(0) )
		End With
	End With
End Function
</SCRIPT>

<OBJECT CLASSID="clsid:13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9" id="TreeCube1"></OBJECT>

<SCRIPT LANGUAGE="VBScript">
Function Init()
	With TreeCube1
		.TexturePicturePath = ""
		With .FrontFace.CreateTree
			.HeaderVisible = False
			.ItemPadding = 16
			.DrawGridLines = 0
			.Columns.Add("Radio").Alignment = 0
			With .Items
				With .Add("Group A")
					With .Items
						With .Add("Radio <b>1")
							.HasRadioButton(0) = True
							.RadioGroup(0) = 1234
						End With
						With .Add("Radio <b>2")
							.HasRadioButton(0) = True
							.RadioGroup(0) = 1234
							.State(0) = 1
						End With
						With .Add("Radio <b>3")
							.HasRadioButton(0) = True
							.RadioGroup(0) = 1234
						End With
					End With
					.Expanded = True
				End With
				With .Add("Group B")
					With .Items
						With .Add("Radio <b>1")
							.HasRadioButton(0) = True
							.RadioGroup(0) = 1235
						End With
						With .Add("Radio <b>2")
							.HasRadioButton(0) = True
							.RadioGroup(0) = 1235
						End With
						With .Add("Radio <b>3")
							.HasRadioButton(0) = True
							.RadioGroup(0) = 1235
							.State(0) = 1
						End With
					End With
					.Expanded = True
				End With
			End With
		End With
	End With
End Function
</SCRIPT>
</BODY>

C# for /COM

// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
private void axTreeCube1_FaceTreeStateChanged(object sender, AxEXTREECUBELib._ITreeCubeEvents_FaceTreeStateChangedEvent e)
{
	EXTREECUBELib.Item var_Item = axTreeCube1.FrontFace.FaceTree.get_ItemByIndex(e.item);
		System.Diagnostics.Debug.Print( "State" );
		System.Diagnostics.Debug.Print( var_Item.get_State(0).ToString() );
}
//this.axTreeCube1.FaceTreeStateChanged += new AxEXTREECUBELib._ITreeCubeEvents_FaceTreeStateChangedEventHandler(this.axTreeCube1_FaceTreeStateChanged);

axTreeCube1.TexturePicturePath = "";
EXTREECUBELib.FaceTree var_FaceTree = axTreeCube1.FrontFace.CreateTree();
	var_FaceTree.HeaderVisible = false;
	var_FaceTree.ItemPadding = 16;
	var_FaceTree.DrawGridLines = EXTREECUBELib.GridLinesEnum.exNoLines;
	var_FaceTree.Columns.Add("Radio").Alignment = EXTREECUBELib.AlignmentEnum.LeftAlignment;
	EXTREECUBELib.Items var_Items = var_FaceTree.Items;
		EXTREECUBELib.Item var_Item = var_Items.Add("Group A");
			EXTREECUBELib.Items var_Items1 = var_Item.Items;
				EXTREECUBELib.Item var_Item1 = var_Items1.Add("Radio <b>1");
					var_Item1.set_HasRadioButton(0,true);
					var_Item1.set_RadioGroup(0,1234);
				EXTREECUBELib.Item var_Item2 = var_Items1.Add("Radio <b>2");
					var_Item2.set_HasRadioButton(0,true);
					var_Item2.set_RadioGroup(0,1234);
					var_Item2.set_State(0,1);
				EXTREECUBELib.Item var_Item3 = var_Items1.Add("Radio <b>3");
					var_Item3.set_HasRadioButton(0,true);
					var_Item3.set_RadioGroup(0,1234);
			var_Item.Expanded = true;
		EXTREECUBELib.Item var_Item4 = var_Items.Add("Group B");
			EXTREECUBELib.Items var_Items2 = var_Item4.Items;
				EXTREECUBELib.Item var_Item5 = var_Items2.Add("Radio <b>1");
					var_Item5.set_HasRadioButton(0,true);
					var_Item5.set_RadioGroup(0,1235);
				EXTREECUBELib.Item var_Item6 = var_Items2.Add("Radio <b>2");
					var_Item6.set_HasRadioButton(0,true);
					var_Item6.set_RadioGroup(0,1235);
				EXTREECUBELib.Item var_Item7 = var_Items2.Add("Radio <b>3");
					var_Item7.set_HasRadioButton(0,true);
					var_Item7.set_RadioGroup(0,1235);
					var_Item7.set_State(0,1);
			var_Item4.Expanded = true;

X++ (Dynamics Ax 2009)

// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
void onEvent_FaceTreeStateChanged(COM   _Tree,int   _Item,int   _Column)
{
	COM com_Item;
	anytype var_Item;
	;
	var_Item = COM::createFromObject(extreecube1.FrontFace().FaceTree()).ItemByIndex(_Item); com_Item = var_Item;
		print( "State" );
		print( com_Item.State(COMVariant::createFromInt(0)) );
}

public void init()
{
	COM com_Column,com_Columns,com_FaceTree,com_Item,com_Item1,com_Item2,com_Item3,com_Item4,com_Item5,com_Item6,com_Item7,com_Items,com_Items1,com_Items2;
	anytype var_Column,var_Columns,var_FaceTree,var_Item,var_Item1,var_Item2,var_Item3,var_Item4,var_Item5,var_Item6,var_Item7,var_Items,var_Items1,var_Items2;
	;

	super();

	extreecube1.TexturePicturePath("");
	var_FaceTree = extreecube1.FrontFace().CreateTree(); com_FaceTree = var_FaceTree;
		com_FaceTree.HeaderVisible(false);
		com_FaceTree.ItemPadding(16);
		com_FaceTree.DrawGridLines(0/*exNoLines*/);
		var_Columns = COM::createFromObject(com_FaceTree.Columns()); com_Columns = var_Columns;
		var_Column = COM::createFromObject(com_Columns).Add("Radio"); com_Column = var_Column;
		com_Column.Alignment(0/*LeftAlignment*/);
		var_Items = com_FaceTree.Items(); com_Items = var_Items;
			var_Item = com_Items.Add("Group A"); com_Item = var_Item;
				var_Items1 = com_Item.Items(); com_Items1 = var_Items1;
					var_Item1 = com_Items1.Add("Radio <b>1"); com_Item1 = var_Item1;
						com_Item1.HasRadioButton(COMVariant::createFromInt(0),true);
						com_Item1.RadioGroup(COMVariant::createFromInt(0),1234);
					var_Item2 = com_Items1.Add("Radio <b>2"); com_Item2 = var_Item2;
						com_Item2.HasRadioButton(COMVariant::createFromInt(0),true);
						com_Item2.RadioGroup(COMVariant::createFromInt(0),1234);
						com_Item2.State(COMVariant::createFromInt(0),1);
					var_Item3 = com_Items1.Add("Radio <b>3"); com_Item3 = var_Item3;
						com_Item3.HasRadioButton(COMVariant::createFromInt(0),true);
						com_Item3.RadioGroup(COMVariant::createFromInt(0),1234);
				com_Item.Expanded(true);
			var_Item4 = com_Items.Add("Group B"); com_Item4 = var_Item4;
				var_Items2 = com_Item4.Items(); com_Items2 = var_Items2;
					var_Item5 = com_Items2.Add("Radio <b>1"); com_Item5 = var_Item5;
						com_Item5.HasRadioButton(COMVariant::createFromInt(0),true);
						com_Item5.RadioGroup(COMVariant::createFromInt(0),1235);
					var_Item6 = com_Items2.Add("Radio <b>2"); com_Item6 = var_Item6;
						com_Item6.HasRadioButton(COMVariant::createFromInt(0),true);
						com_Item6.RadioGroup(COMVariant::createFromInt(0),1235);
					var_Item7 = com_Items2.Add("Radio <b>3"); com_Item7 = var_Item7;
						com_Item7.HasRadioButton(COMVariant::createFromInt(0),true);
						com_Item7.RadioGroup(COMVariant::createFromInt(0),1235);
						com_Item7.State(COMVariant::createFromInt(0),1);
				com_Item4.Expanded(true);
}

Delphi 8 (.NET only)

// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
procedure TWinForm1.AxTreeCube1_FaceTreeStateChanged(sender: System.Object; e: AxEXTREECUBELib._ITreeCubeEvents_FaceTreeStateChangedEvent);
begin
	with AxTreeCube1 do
	begin
		with FrontFace.FaceTree.ItemByIndex[e.item] do
		begin
			OutputDebugString( 'State' );
			OutputDebugString( State[TObject(0)] );
		end;
	end
end;

with AxTreeCube1 do
begin
	TexturePicturePath := '';
	with FrontFace.CreateTree() do
	begin
		HeaderVisible := False;
		ItemPadding := 16;
		DrawGridLines := EXTREECUBELib.GridLinesEnum.exNoLines;
		Columns.Add('Radio').Alignment := EXTREECUBELib.AlignmentEnum.LeftAlignment;
		with Items do
		begin
			with Add('Group A') do
			begin
				with Items do
				begin
					with Add('Radio <b>1') do
					begin
						HasRadioButton[TObject(0)] := True;
						RadioGroup[TObject(0)] := 1234;
					end;
					with Add('Radio <b>2') do
					begin
						HasRadioButton[TObject(0)] := True;
						RadioGroup[TObject(0)] := 1234;
						State[TObject(0)] := 1;
					end;
					with Add('Radio <b>3') do
					begin
						HasRadioButton[TObject(0)] := True;
						RadioGroup[TObject(0)] := 1234;
					end;
				end;
				Expanded := True;
			end;
			with Add('Group B') do
			begin
				with Items do
				begin
					with Add('Radio <b>1') do
					begin
						HasRadioButton[TObject(0)] := True;
						RadioGroup[TObject(0)] := 1235;
					end;
					with Add('Radio <b>2') do
					begin
						HasRadioButton[TObject(0)] := True;
						RadioGroup[TObject(0)] := 1235;
					end;
					with Add('Radio <b>3') do
					begin
						HasRadioButton[TObject(0)] := True;
						RadioGroup[TObject(0)] := 1235;
						State[TObject(0)] := 1;
					end;
				end;
				Expanded := True;
			end;
		end;
	end;
end

Delphi (standard)

// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
procedure TForm1.TreeCube1FaceTreeStateChanged(ASender: TObject; Tree : IFaceTree;Item : Integer;Column : Integer);
begin
	with TreeCube1 do
	begin
		with FrontFace.FaceTree.ItemByIndex[Item] do
		begin
			OutputDebugString( 'State' );
			OutputDebugString( State[OleVariant(0)] );
		end;
	end
end;

with TreeCube1 do
begin
	TexturePicturePath := '';
	with FrontFace.CreateTree() do
	begin
		HeaderVisible := False;
		ItemPadding := 16;
		DrawGridLines := EXTREECUBELib_TLB.exNoLines;
		Columns.Add('Radio').Alignment := EXTREECUBELib_TLB.LeftAlignment;
		with Items do
		begin
			with Add('Group A') do
			begin
				with Items do
				begin
					with Add('Radio <b>1') do
					begin
						HasRadioButton[OleVariant(0)] := True;
						RadioGroup[OleVariant(0)] := 1234;
					end;
					with Add('Radio <b>2') do
					begin
						HasRadioButton[OleVariant(0)] := True;
						RadioGroup[OleVariant(0)] := 1234;
						State[OleVariant(0)] := 1;
					end;
					with Add('Radio <b>3') do
					begin
						HasRadioButton[OleVariant(0)] := True;
						RadioGroup[OleVariant(0)] := 1234;
					end;
				end;
				Expanded := True;
			end;
			with Add('Group B') do
			begin
				with Items do
				begin
					with Add('Radio <b>1') do
					begin
						HasRadioButton[OleVariant(0)] := True;
						RadioGroup[OleVariant(0)] := 1235;
					end;
					with Add('Radio <b>2') do
					begin
						HasRadioButton[OleVariant(0)] := True;
						RadioGroup[OleVariant(0)] := 1235;
					end;
					with Add('Radio <b>3') do
					begin
						HasRadioButton[OleVariant(0)] := True;
						RadioGroup[OleVariant(0)] := 1235;
						State[OleVariant(0)] := 1;
					end;
				end;
				Expanded := True;
			end;
		end;
	end;
end

VFP

*** FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type. ***
LPARAMETERS Tree,Item,Column
	with thisform.TreeCube1
		with .FrontFace.FaceTree.ItemByIndex(Item)
			DEBUGOUT( "State" )
			DEBUGOUT( .State(0) )
		endwith
	endwith

with thisform.TreeCube1
	.TexturePicturePath = ""
	with .FrontFace.CreateTree
		.HeaderVisible = .F.
		.ItemPadding = 16
		.DrawGridLines = 0
		.Columns.Add("Radio").Alignment = 0
		with .Items
			with .Add("Group A")
				with .Items
					with .Add("Radio <b>1")
						.HasRadioButton(0) = .T.
						.RadioGroup(0) = 1234
					endwith
					with .Add("Radio <b>2")
						.HasRadioButton(0) = .T.
						.RadioGroup(0) = 1234
						.State(0) = 1
					endwith
					with .Add("Radio <b>3")
						.HasRadioButton(0) = .T.
						.RadioGroup(0) = 1234
					endwith
				endwith
				.Expanded = .T.
			endwith
			with .Add("Group B")
				with .Items
					with .Add("Radio <b>1")
						.HasRadioButton(0) = .T.
						.RadioGroup(0) = 1235
					endwith
					with .Add("Radio <b>2")
						.HasRadioButton(0) = .T.
						.RadioGroup(0) = 1235
					endwith
					with .Add("Radio <b>3")
						.HasRadioButton(0) = .T.
						.RadioGroup(0) = 1235
						.State(0) = 1
					endwith
				endwith
				.Expanded = .T.
			endwith
		endwith
	endwith
endwith

dBASE Plus

/*
with (this.EXTREECUBEACTIVEXCONTROL1.nativeObject)
	FaceTreeStateChanged = class::nativeObject_FaceTreeStateChanged
endwith
*/
// Notifies that a cell changes its state into a face of tree type.
function nativeObject_FaceTreeStateChanged(Tree,Item,Column)
	local var_Item
	oTreeCube = form.EXTREECUBEACTIVEXCONTROL1.nativeObject
	var_Item = oTreeCube.FrontFace.FaceTree.ItemByIndex(Item)
		? "State" 
		? Str(var_Item.State(0)) 
return

local oTreeCube,var_Column,var_FaceTree,var_Item,var_Item1,var_Item2,var_Item3,var_Item4,var_Item5,var_Item6,var_Item7,var_Items,var_Items1,var_Items2

oTreeCube = form.EXTREECUBEACTIVEXCONTROL1.nativeObject
oTreeCube.TexturePicturePath = ""
var_FaceTree = oTreeCube.FrontFace.CreateTree()
	var_FaceTree.HeaderVisible = false
	var_FaceTree.ItemPadding = 16
	var_FaceTree.DrawGridLines = 0
	// var_FaceTree.Columns.Add("Radio").Alignment = 0
	var_Column = var_FaceTree.Columns.Add("Radio")
	with (oTreeCube)
		TemplateDef = [dim var_Column]
		TemplateDef = var_Column
		Template = [var_Column.Alignment = 0]
	endwith
	var_Items = var_FaceTree.Items
		var_Item = var_Items.Add("Group A")
			var_Items1 = var_Item.Items
				var_Item1 = var_Items1.Add("Radio <b>1")
					// var_Item1.HasRadioButton(0) = true
					with (oTreeCube)
						TemplateDef = [dim var_Item1]
						TemplateDef = var_Item1
						Template = [var_Item1.HasRadioButton(0) = True]
					endwith
					// var_Item1.RadioGroup(0) = 1234
					with (oTreeCube)
						TemplateDef = [dim var_Item1]
						TemplateDef = var_Item1
						Template = [var_Item1.RadioGroup(0) = 1234]
					endwith
				var_Item2 = var_Items1.Add("Radio <b>2")
					// var_Item2.HasRadioButton(0) = true
					with (oTreeCube)
						TemplateDef = [dim var_Item2]
						TemplateDef = var_Item2
						Template = [var_Item2.HasRadioButton(0) = True]
					endwith
					// var_Item2.RadioGroup(0) = 1234
					with (oTreeCube)
						TemplateDef = [dim var_Item2]
						TemplateDef = var_Item2
						Template = [var_Item2.RadioGroup(0) = 1234]
					endwith
					// var_Item2.State(0) = 1
					with (oTreeCube)
						TemplateDef = [dim var_Item2]
						TemplateDef = var_Item2
						Template = [var_Item2.State(0) = 1]
					endwith
				var_Item3 = var_Items1.Add("Radio <b>3")
					// var_Item3.HasRadioButton(0) = true
					with (oTreeCube)
						TemplateDef = [dim var_Item3]
						TemplateDef = var_Item3
						Template = [var_Item3.HasRadioButton(0) = True]
					endwith
					// var_Item3.RadioGroup(0) = 1234
					with (oTreeCube)
						TemplateDef = [dim var_Item3]
						TemplateDef = var_Item3
						Template = [var_Item3.RadioGroup(0) = 1234]
					endwith
			var_Item.Expanded = true
		var_Item4 = var_Items.Add("Group B")
			var_Items2 = var_Item4.Items
				var_Item5 = var_Items2.Add("Radio <b>1")
					// var_Item5.HasRadioButton(0) = true
					with (oTreeCube)
						TemplateDef = [dim var_Item5]
						TemplateDef = var_Item5
						Template = [var_Item5.HasRadioButton(0) = True]
					endwith
					// var_Item5.RadioGroup(0) = 1235
					with (oTreeCube)
						TemplateDef = [dim var_Item5]
						TemplateDef = var_Item5
						Template = [var_Item5.RadioGroup(0) = 1235]
					endwith
				var_Item6 = var_Items2.Add("Radio <b>2")
					// var_Item6.HasRadioButton(0) = true
					with (oTreeCube)
						TemplateDef = [dim var_Item6]
						TemplateDef = var_Item6
						Template = [var_Item6.HasRadioButton(0) = True]
					endwith
					// var_Item6.RadioGroup(0) = 1235
					with (oTreeCube)
						TemplateDef = [dim var_Item6]
						TemplateDef = var_Item6
						Template = [var_Item6.RadioGroup(0) = 1235]
					endwith
				var_Item7 = var_Items2.Add("Radio <b>3")
					// var_Item7.HasRadioButton(0) = true
					with (oTreeCube)
						TemplateDef = [dim var_Item7]
						TemplateDef = var_Item7
						Template = [var_Item7.HasRadioButton(0) = True]
					endwith
					// var_Item7.RadioGroup(0) = 1235
					with (oTreeCube)
						TemplateDef = [dim var_Item7]
						TemplateDef = var_Item7
						Template = [var_Item7.RadioGroup(0) = 1235]
					endwith
					// var_Item7.State(0) = 1
					with (oTreeCube)
						TemplateDef = [dim var_Item7]
						TemplateDef = var_Item7
						Template = [var_Item7.State(0) = 1]
					endwith
			var_Item4.Expanded = true

XBasic (Alpha Five)

' Notifies that a cell changes its state into a face of tree type.
function FaceTreeStateChanged as v (Tree  as  OLE::Exontrol.TreeCube.1::IFaceTree,Item  as  N,Column  as  N)
	Dim var_Item as P
	oTreeCube = topparent:CONTROL_ACTIVEX1.activex
	var_Item = oTreeCube.FrontFace.FaceTree.ItemByIndex(Item)
		? "State" 
		? var_Item.State(0) 
end function

Dim oTreeCube as P
Dim var_Column as local
Dim var_FaceTree as P
Dim var_Item as P
Dim var_Item1 as P
Dim var_Item2 as P
Dim var_Item3 as P
Dim var_Item4 as P
Dim var_Item5 as P
Dim var_Item6 as P
Dim var_Item7 as P
Dim var_Items as P
Dim var_Items1 as P
Dim var_Items2 as P

oTreeCube = topparent:CONTROL_ACTIVEX1.activex
oTreeCube.TexturePicturePath = ""
var_FaceTree = oTreeCube.FrontFace.CreateTree()
	var_FaceTree.HeaderVisible = .f.
	var_FaceTree.ItemPadding = 16
	var_FaceTree.DrawGridLines = 0
	' var_FaceTree.Columns.Add("Radio").Alignment = 0
	var_Column = var_FaceTree.Columns.Add("Radio")
	oTreeCube.TemplateDef = "dim var_Column"
	oTreeCube.TemplateDef = var_Column
	oTreeCube.Template = "var_Column.Alignment = 0"

	var_Items = var_FaceTree.Items
		var_Item = var_Items.Add("Group A")
			var_Items1 = var_Item.Items
				var_Item1 = var_Items1.Add("Radio <b>1")
					' var_Item1.HasRadioButton(0) = .t.
					oTreeCube.TemplateDef = "dim var_Item1"
					oTreeCube.TemplateDef = var_Item1
					oTreeCube.Template = "var_Item1.HasRadioButton(0) = True"

					' var_Item1.RadioGroup(0) = 1234
					oTreeCube.TemplateDef = "dim var_Item1"
					oTreeCube.TemplateDef = var_Item1
					oTreeCube.Template = "var_Item1.RadioGroup(0) = 1234"

				var_Item2 = var_Items1.Add("Radio <b>2")
					' var_Item2.HasRadioButton(0) = .t.
					oTreeCube.TemplateDef = "dim var_Item2"
					oTreeCube.TemplateDef = var_Item2
					oTreeCube.Template = "var_Item2.HasRadioButton(0) = True"

					' var_Item2.RadioGroup(0) = 1234
					oTreeCube.TemplateDef = "dim var_Item2"
					oTreeCube.TemplateDef = var_Item2
					oTreeCube.Template = "var_Item2.RadioGroup(0) = 1234"

					' var_Item2.State(0) = 1
					oTreeCube.TemplateDef = "dim var_Item2"
					oTreeCube.TemplateDef = var_Item2
					oTreeCube.Template = "var_Item2.State(0) = 1"

				var_Item3 = var_Items1.Add("Radio <b>3")
					' var_Item3.HasRadioButton(0) = .t.
					oTreeCube.TemplateDef = "dim var_Item3"
					oTreeCube.TemplateDef = var_Item3
					oTreeCube.Template = "var_Item3.HasRadioButton(0) = True"

					' var_Item3.RadioGroup(0) = 1234
					oTreeCube.TemplateDef = "dim var_Item3"
					oTreeCube.TemplateDef = var_Item3
					oTreeCube.Template = "var_Item3.RadioGroup(0) = 1234"

			var_Item.Expanded = .t.
		var_Item4 = var_Items.Add("Group B")
			var_Items2 = var_Item4.Items
				var_Item5 = var_Items2.Add("Radio <b>1")
					' var_Item5.HasRadioButton(0) = .t.
					oTreeCube.TemplateDef = "dim var_Item5"
					oTreeCube.TemplateDef = var_Item5
					oTreeCube.Template = "var_Item5.HasRadioButton(0) = True"

					' var_Item5.RadioGroup(0) = 1235
					oTreeCube.TemplateDef = "dim var_Item5"
					oTreeCube.TemplateDef = var_Item5
					oTreeCube.Template = "var_Item5.RadioGroup(0) = 1235"

				var_Item6 = var_Items2.Add("Radio <b>2")
					' var_Item6.HasRadioButton(0) = .t.
					oTreeCube.TemplateDef = "dim var_Item6"
					oTreeCube.TemplateDef = var_Item6
					oTreeCube.Template = "var_Item6.HasRadioButton(0) = True"

					' var_Item6.RadioGroup(0) = 1235
					oTreeCube.TemplateDef = "dim var_Item6"
					oTreeCube.TemplateDef = var_Item6
					oTreeCube.Template = "var_Item6.RadioGroup(0) = 1235"

				var_Item7 = var_Items2.Add("Radio <b>3")
					' var_Item7.HasRadioButton(0) = .t.
					oTreeCube.TemplateDef = "dim var_Item7"
					oTreeCube.TemplateDef = var_Item7
					oTreeCube.Template = "var_Item7.HasRadioButton(0) = True"

					' var_Item7.RadioGroup(0) = 1235
					oTreeCube.TemplateDef = "dim var_Item7"
					oTreeCube.TemplateDef = var_Item7
					oTreeCube.Template = "var_Item7.RadioGroup(0) = 1235"

					' var_Item7.State(0) = 1
					oTreeCube.TemplateDef = "dim var_Item7"
					oTreeCube.TemplateDef = var_Item7
					oTreeCube.Template = "var_Item7.State(0) = 1"

			var_Item4.Expanded = .t.

Visual Objects

METHOD OCX_Exontrol1FaceTreeStateChanged(Tree,Item,Column) CLASS MainDialog
	// FaceTreeStateChanged event - Notifies that a cell changes its state into a face of tree type.
	local var_Item as IItem
	var_Item := oDCOCX_Exontrol1:FrontFace:FaceTree:[ItemByIndex,Item]
		OutputDebugString(String2Psz( "State" ))
		OutputDebugString(String2Psz( AsString(var_Item:[State,0]) ))
RETURN NIL

local var_FaceTree as IFaceTree
local var_Item,var_Item1,var_Item2,var_Item3,var_Item4,var_Item5,var_Item6,var_Item7 as IItem
local var_Items,var_Items1,var_Items2 as IItems

oDCOCX_Exontrol1:TexturePicturePath := ""
var_FaceTree := oDCOCX_Exontrol1:FrontFace:CreateTree()
	var_FaceTree:HeaderVisible := false
	var_FaceTree:ItemPadding := 16
	var_FaceTree:DrawGridLines := exNoLines
	var_FaceTree:Columns:Add("Radio"):Alignment := LeftAlignment
	var_Items := var_FaceTree:Items
		var_Item := var_Items:Add("Group A")
			var_Items1 := var_Item:Items
				var_Item1 := var_Items1:Add("Radio <b>1")
					var_Item1:[HasRadioButton,0] := true
					var_Item1:[RadioGroup,0] := 1234
				var_Item2 := var_Items1:Add("Radio <b>2")
					var_Item2:[HasRadioButton,0] := true
					var_Item2:[RadioGroup,0] := 1234
					var_Item2:[State,0] := 1
				var_Item3 := var_Items1:Add("Radio <b>3")
					var_Item3:[HasRadioButton,0] := true
					var_Item3:[RadioGroup,0] := 1234
			var_Item:Expanded := true
		var_Item4 := var_Items:Add("Group B")
			var_Items2 := var_Item4:Items
				var_Item5 := var_Items2:Add("Radio <b>1")
					var_Item5:[HasRadioButton,0] := true
					var_Item5:[RadioGroup,0] := 1235
				var_Item6 := var_Items2:Add("Radio <b>2")
					var_Item6:[HasRadioButton,0] := true
					var_Item6:[RadioGroup,0] := 1235
				var_Item7 := var_Items2:Add("Radio <b>3")
					var_Item7:[HasRadioButton,0] := true
					var_Item7:[RadioGroup,0] := 1235
					var_Item7:[State,0] := 1
			var_Item4:Expanded := true

PowerBuilder

/*begin event FaceTreeStateChanged(oleobject  Tree,long  Item,long  Column) - Notifies that a cell changes its state into a face of tree type.*/
/*
	OleObject var_Item
	oTreeCube = ole_1.Object
	var_Item = oTreeCube.FrontFace.FaceTree.ItemByIndex(Item)
		MessageBox("Information",string( "State" ))
		MessageBox("Information",string( String(var_Item.State(0)) ))
*/
/*end event FaceTreeStateChanged*/

OleObject oTreeCube,var_FaceTree,var_Item,var_Item1,var_Item2,var_Item3,var_Item4,var_Item5,var_Item6,var_Item7,var_Items,var_Items1,var_Items2

oTreeCube = ole_1.Object
oTreeCube.TexturePicturePath = ""
var_FaceTree = oTreeCube.FrontFace.CreateTree()
	var_FaceTree.HeaderVisible = false
	var_FaceTree.ItemPadding = 16
	var_FaceTree.DrawGridLines = 0
	var_FaceTree.Columns.Add("Radio").Alignment = 0
	var_Items = var_FaceTree.Items
		var_Item = var_Items.Add("Group A")
			var_Items1 = var_Item.Items
				var_Item1 = var_Items1.Add("Radio <b>1")
					var_Item1.HasRadioButton(0,true)
					var_Item1.RadioGroup(0,1234)
				var_Item2 = var_Items1.Add("Radio <b>2")
					var_Item2.HasRadioButton(0,true)
					var_Item2.RadioGroup(0,1234)
					var_Item2.State(0,1)
				var_Item3 = var_Items1.Add("Radio <b>3")
					var_Item3.HasRadioButton(0,true)
					var_Item3.RadioGroup(0,1234)
			var_Item.Expanded = true
		var_Item4 = var_Items.Add("Group B")
			var_Items2 = var_Item4.Items
				var_Item5 = var_Items2.Add("Radio <b>1")
					var_Item5.HasRadioButton(0,true)
					var_Item5.RadioGroup(0,1235)
				var_Item6 = var_Items2.Add("Radio <b>2")
					var_Item6.HasRadioButton(0,true)
					var_Item6.RadioGroup(0,1235)
				var_Item7 = var_Items2.Add("Radio <b>3")
					var_Item7.HasRadioButton(0,true)
					var_Item7.RadioGroup(0,1235)
					var_Item7.State(0,1)
			var_Item4.Expanded = true

Visual DataFlex

// Notifies that a cell changes its state into a face of tree type.
Procedure OnComFaceTreeStateChanged Variant   llTree Integer   llItem Integer   llColumn
	Forward Send OnComFaceTreeStateChanged llTree llItem llColumn
	Variant voFace
	Get ComFrontFace to voFace
	Handle hoFace
	Get Create (RefClass(cComFace)) to hoFace
	Set pvComObject of hoFace to voFace
		Variant voFaceTree
		Get ComFaceTree of hoFace to voFaceTree
		Handle hoFaceTree
		Get Create (RefClass(cComFaceTree)) to hoFaceTree
		Set pvComObject of hoFaceTree to voFaceTree
			Variant voItem
			Get ComItemByIndex of hoFaceTree llItem to voItem
			Handle hoItem
			Get Create (RefClass(cComItem)) to hoItem
			Set pvComObject of hoItem to voItem
				Showln "State" (ComState(hoItem,0))
			Send Destroy to hoItem
		Send Destroy to hoFaceTree
	Send Destroy to hoFace
End_Procedure

Procedure OnCreate
	Forward Send OnCreate
	Set ComTexturePicturePath to ""
	Variant voFace1
	Get ComFrontFace to voFace1
	Handle hoFace1
	Get Create (RefClass(cComFace)) to hoFace1
	Set pvComObject of hoFace1 to voFace1
		Variant voFaceTree1
		Get ComCreateTree of hoFace1 to voFaceTree1
		Handle hoFaceTree1
		Get Create (RefClass(cComFaceTree)) to hoFaceTree1
		Set pvComObject of hoFaceTree1 to voFaceTree1
			Set ComHeaderVisible of hoFaceTree1 to False
			Set ComItemPadding of hoFaceTree1 to 16
			Set ComDrawGridLines of hoFaceTree1 to OLEexNoLines
			Variant voColumns
			Get ComColumns of hoFaceTree1 to voColumns
			Handle hoColumns
			Get Create (RefClass(cComColumns)) to hoColumns
			Set pvComObject of hoColumns to voColumns
				Variant voColumn
				Get ComAdd of hoColumns "Radio" to voColumn
				Handle hoColumn
				Get Create (RefClass(cComColumn)) to hoColumn
				Set pvComObject of hoColumn to voColumn
					Set ComAlignment of hoColumn to OLELeftAlignment
				Send Destroy to hoColumn
			Send Destroy to hoColumns
			Variant voItems
			Get ComItems of hoFaceTree1 to voItems
			Handle hoItems
			Get Create (RefClass(cComItems)) to hoItems
			Set pvComObject of hoItems to voItems
				Variant voItem1
				Get ComAdd of hoItems "Group A" to voItem1
				Handle hoItem1
				Get Create (RefClass(cComItem)) to hoItem1
				Set pvComObject of hoItem1 to voItem1
					Variant voItems1
					Get ComItems of hoItem1 to voItems1
					Handle hoItems1
					Get Create (RefClass(cComItems)) to hoItems1
					Set pvComObject of hoItems1 to voItems1
						Variant voItem2
						Get ComAdd of hoItems1 "Radio <b>1" to voItem2
						Handle hoItem2
						Get Create (RefClass(cComItem)) to hoItem2
						Set pvComObject of hoItem2 to voItem2
							Set ComHasRadioButton of hoItem2 0 to True
							Set ComRadioGroup of hoItem2 0 to 1234
						Send Destroy to hoItem2
						Variant voItem3
						Get ComAdd of hoItems1 "Radio <b>2" to voItem3
						Handle hoItem3
						Get Create (RefClass(cComItem)) to hoItem3
						Set pvComObject of hoItem3 to voItem3
							Set ComHasRadioButton of hoItem3 0 to True
							Set ComRadioGroup of hoItem3 0 to 1234
							Set ComState of hoItem3 0 to 1
						Send Destroy to hoItem3
						Variant voItem4
						Get ComAdd of hoItems1 "Radio <b>3" to voItem4
						Handle hoItem4
						Get Create (RefClass(cComItem)) to hoItem4
						Set pvComObject of hoItem4 to voItem4
							Set ComHasRadioButton of hoItem4 0 to True
							Set ComRadioGroup of hoItem4 0 to 1234
						Send Destroy to hoItem4
					Send Destroy to hoItems1
					Set ComExpanded of hoItem1 to True
				Send Destroy to hoItem1
				Variant voItem5
				Get ComAdd of hoItems "Group B" to voItem5
				Handle hoItem5
				Get Create (RefClass(cComItem)) to hoItem5
				Set pvComObject of hoItem5 to voItem5
					Variant voItems2
					Get ComItems of hoItem5 to voItems2
					Handle hoItems2
					Get Create (RefClass(cComItems)) to hoItems2
					Set pvComObject of hoItems2 to voItems2
						Variant voItem6
						Get ComAdd of hoItems2 "Radio <b>1" to voItem6
						Handle hoItem6
						Get Create (RefClass(cComItem)) to hoItem6
						Set pvComObject of hoItem6 to voItem6
							Set ComHasRadioButton of hoItem6 0 to True
							Set ComRadioGroup of hoItem6 0 to 1235
						Send Destroy to hoItem6
						Variant voItem7
						Get ComAdd of hoItems2 "Radio <b>2" to voItem7
						Handle hoItem7
						Get Create (RefClass(cComItem)) to hoItem7
						Set pvComObject of hoItem7 to voItem7
							Set ComHasRadioButton of hoItem7 0 to True
							Set ComRadioGroup of hoItem7 0 to 1235
						Send Destroy to hoItem7
						Variant voItem8
						Get ComAdd of hoItems2 "Radio <b>3" to voItem8
						Handle hoItem8
						Get Create (RefClass(cComItem)) to hoItem8
						Set pvComObject of hoItem8 to voItem8
							Set ComHasRadioButton of hoItem8 0 to True
							Set ComRadioGroup of hoItem8 0 to 1235
							Set ComState of hoItem8 0 to 1
						Send Destroy to hoItem8
					Send Destroy to hoItems2
					Set ComExpanded of hoItem5 to True
				Send Destroy to hoItem5
			Send Destroy to hoItems
		Send Destroy to hoFaceTree1
	Send Destroy to hoFace1
End_Procedure

XBase++

PROCEDURE OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)
	LOCAL oItem
	oItem := oTreeCube:FrontFace():FaceTree():ItemByIndex(Item)
		DevOut( "State" )
		DevOut( Transform(oItem:State(0),"") )
RETURN

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

PROCEDURE Main
 	LOCAL oForm
	LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
	LOCAL oFaceTree
	LOCAL oItem,oItem1,oItem2,oItem3,oItem4,oItem5,oItem6,oItem7
	LOCAL oItems,oItems1,oItems2
	LOCAL oTreeCube

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

	oTreeCube := XbpActiveXControl():new( oForm:drawingArea )
	oTreeCube:CLSID  := "Exontrol.TreeCube.1" /*{13A5B44B-DBB7-42F2-AE2B-943A6CF6C8B9}*/
	oTreeCube:create(,, {10,60},{610,370} )

		oTreeCube:FaceTreeStateChanged := {|Tree,Item,Column| OnFaceTreeStateChanged(oTreeCube,Tree,Item,Column)} /*Notifies that a cell changes its state into a face of tree type.*/

		oTreeCube:TexturePicturePath := ""
		oFaceTree := oTreeCube:FrontFace():CreateTree()
			oFaceTree:HeaderVisible := .F.
			oFaceTree:ItemPadding := 16
			oFaceTree:DrawGridLines := 0/*exNoLines*/
			oFaceTree:Columns():Add("Radio"):Alignment := 0/*LeftAlignment*/
			oItems := oFaceTree:Items()
				oItem := oItems:Add("Group A")
					oItems1 := oItem:Items()
						oItem1 := oItems1:Add("Radio <b>1")
							oItem1:SetProperty("HasRadioButton",0,.T.)
							oItem1:SetProperty("RadioGroup",0,1234)
						oItem2 := oItems1:Add("Radio <b>2")
							oItem2:SetProperty("HasRadioButton",0,.T.)
							oItem2:SetProperty("RadioGroup",0,1234)
							oItem2:SetProperty("State",0,1)
						oItem3 := oItems1:Add("Radio <b>3")
							oItem3:SetProperty("HasRadioButton",0,.T.)
							oItem3:SetProperty("RadioGroup",0,1234)
					oItem:Expanded := .T.
				oItem4 := oItems:Add("Group B")
					oItems2 := oItem4:Items()
						oItem5 := oItems2:Add("Radio <b>1")
							oItem5:SetProperty("HasRadioButton",0,.T.)
							oItem5:SetProperty("RadioGroup",0,1235)
						oItem6 := oItems2:Add("Radio <b>2")
							oItem6:SetProperty("HasRadioButton",0,.T.)
							oItem6:SetProperty("RadioGroup",0,1235)
						oItem7 := oItems2:Add("Radio <b>3")
							oItem7:SetProperty("HasRadioButton",0,.T.)
							oItem7:SetProperty("RadioGroup",0,1235)
							oItem7:SetProperty("State",0,1)
					oItem4:Expanded := .T.

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