Does your control support partial-check ( three states ) feature for each column?
VBA (MS Access, Excell...)
With Tree1
.LinesAtRoot = -1
With .Columns.Add("P1")
.Def(0) = True
.PartialCheck = True
End With
With .Columns.Add("P2")
.Def(0) = True
.PartialCheck = True
End With
With .Items
h = .AddItem("Root")
.InsertItem h,0,"Child 1"
.InsertItem h,0,"Child 2"
.ExpandItem(h) = True
End With
End With
VB6
With Tree1
.LinesAtRoot = exLinesAtRoot
With .Columns.Add("P1")
.Def(exCellHasCheckBox) = True
.PartialCheck = True
End With
With .Columns.Add("P2")
.Def(exCellHasCheckBox) = True
.PartialCheck = True
End With
With .Items
h = .AddItem("Root")
.InsertItem h,0,"Child 1"
.InsertItem h,0,"Child 2"
.ExpandItem(h) = True
End With
End With
VB.NET
Dim h
With Extree1
.LinesAtRoot = exontrol.EXTREELib.LinesAtRootEnum.exLinesAtRoot
With .Columns.Add("P1")
.set_Def(exontrol.EXTREELib.DefColumnEnum.exCellHasCheckBox,True)
.PartialCheck = True
End With
With .Columns.Add("P2")
.set_Def(exontrol.EXTREELib.DefColumnEnum.exCellHasCheckBox,True)
.PartialCheck = True
End With
With .Items
h = .AddItem("Root")
.InsertItem(h,0,"Child 1")
.InsertItem(h,0,"Child 2")
.set_ExpandItem(h,True)
End With
End With
VB.NET for /COM
Dim h
With AxTree1
.LinesAtRoot = EXTREELib.LinesAtRootEnum.exLinesAtRoot
With .Columns.Add("P1")
.Def(EXTREELib.DefColumnEnum.exCellHasCheckBox) = True
.PartialCheck = True
End With
With .Columns.Add("P2")
.Def(EXTREELib.DefColumnEnum.exCellHasCheckBox) = True
.PartialCheck = True
End With
With .Items
h = .AddItem("Root")
.InsertItem(h,0,"Child 1")
.InsertItem(h,0,"Child 2")
.ExpandItem(h) = True
End With
End With
C++
/*
Copy and paste the following directives to your header file as
it defines the namespace 'EXTREELib' for the library: 'ExTree 1.0 Control Library'
#import <ExTree.dll>
using namespace EXTREELib;
*/
EXTREELib::ITreePtr spTree1 = GetDlgItem(IDC_TREE1)->GetControlUnknown();
spTree1->PutLinesAtRoot(EXTREELib::exLinesAtRoot);
EXTREELib::IColumnPtr var_Column = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"P1")));
var_Column->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
var_Column->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IColumnPtr var_Column1 = ((EXTREELib::IColumnPtr)(spTree1->GetColumns()->Add(L"P2")));
var_Column1->PutDef(EXTREELib::exCellHasCheckBox,VARIANT_TRUE);
var_Column1->PutPartialCheck(VARIANT_TRUE);
EXTREELib::IItemsPtr var_Items = spTree1->GetItems();
long h = var_Items->AddItem("Root");
var_Items->InsertItem(h,long(0),"Child 1");
var_Items->InsertItem(h,long(0),"Child 2");
var_Items->PutExpandItem(h,VARIANT_TRUE);
C++ Builder
Tree1->LinesAtRoot = Extreelib_tlb::LinesAtRootEnum::exLinesAtRoot;
Extreelib_tlb::IColumnPtr var_Column = Tree1->Columns->Add(L"P1");
var_Column->set_Def(Extreelib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
var_Column->PartialCheck = true;
Extreelib_tlb::IColumnPtr var_Column1 = Tree1->Columns->Add(L"P2");
var_Column1->set_Def(Extreelib_tlb::DefColumnEnum::exCellHasCheckBox,TVariant(true));
var_Column1->PartialCheck = true;
Extreelib_tlb::IItemsPtr var_Items = Tree1->Items;
long h = var_Items->AddItem(TVariant("Root"));
var_Items->InsertItem(h,TVariant(0),TVariant("Child 1"));
var_Items->InsertItem(h,TVariant(0),TVariant("Child 2"));
var_Items->set_ExpandItem(h,true);
C#
extree1.LinesAtRoot = exontrol.EXTREELib.LinesAtRootEnum.exLinesAtRoot;
exontrol.EXTREELib.Column var_Column = (extree1.Columns.Add("P1") as exontrol.EXTREELib.Column);
var_Column.set_Def(exontrol.EXTREELib.DefColumnEnum.exCellHasCheckBox,true);
var_Column.PartialCheck = true;
exontrol.EXTREELib.Column var_Column1 = (extree1.Columns.Add("P2") as exontrol.EXTREELib.Column);
var_Column1.set_Def(exontrol.EXTREELib.DefColumnEnum.exCellHasCheckBox,true);
var_Column1.PartialCheck = true;
exontrol.EXTREELib.Items var_Items = extree1.Items;
int h = var_Items.AddItem("Root");
var_Items.InsertItem(h,0,"Child 1");
var_Items.InsertItem(h,0,"Child 2");
var_Items.set_ExpandItem(h,true);
JavaScript
<OBJECT classid="clsid:3C5FC763-72BA-4B97-9985-81862E9251F2" id="Tree1"></OBJECT>
<SCRIPT LANGUAGE="JScript">
Tree1.LinesAtRoot = -1;
var var_Column = Tree1.Columns.Add("P1");
var_Column.Def(0) = true;
var_Column.PartialCheck = true;
var var_Column1 = Tree1.Columns.Add("P2");
var_Column1.Def(0) = true;
var_Column1.PartialCheck = true;
var var_Items = Tree1.Items;
var h = var_Items.AddItem("Root");
var_Items.InsertItem(h,0,"Child 1");
var_Items.InsertItem(h,0,"Child 2");
var_Items.ExpandItem(h) = true;
</SCRIPT>
C# for /COM
axTree1.LinesAtRoot = EXTREELib.LinesAtRootEnum.exLinesAtRoot;
EXTREELib.Column var_Column = (axTree1.Columns.Add("P1") as EXTREELib.Column);
var_Column.set_Def(EXTREELib.DefColumnEnum.exCellHasCheckBox,true);
var_Column.PartialCheck = true;
EXTREELib.Column var_Column1 = (axTree1.Columns.Add("P2") as EXTREELib.Column);
var_Column1.set_Def(EXTREELib.DefColumnEnum.exCellHasCheckBox,true);
var_Column1.PartialCheck = true;
EXTREELib.Items var_Items = axTree1.Items;
int h = var_Items.AddItem("Root");
var_Items.InsertItem(h,0,"Child 1");
var_Items.InsertItem(h,0,"Child 2");
var_Items.set_ExpandItem(h,true);
X++ (Dynamics Ax 2009)
public void init()
{
COM com_Column,com_Column1,com_Items;
anytype var_Column,var_Column1,var_Items;
int h;
;
super();
extree1.LinesAtRoot(-1/*exLinesAtRoot*/);
var_Column = COM::createFromVariant(extree1.Columns().Add("P1")); com_Column = var_Column;
com_Column.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
com_Column.PartialCheck(true);
var_Column1 = COM::createFromVariant(extree1.Columns().Add("P2")); com_Column1 = var_Column1;
com_Column1.Def(0/*exCellHasCheckBox*/,COMVariant::createFromBoolean(true));
com_Column1.PartialCheck(true);
var_Items = extree1.Items(); com_Items = var_Items;
h = com_Items.AddItem("Root");
com_Items.InsertItem(h,COMVariant::createFromInt(0),"Child 1");
com_Items.InsertItem(h,COMVariant::createFromInt(0),"Child 2");
com_Items.ExpandItem(h,true);
}
Delphi 8 (.NET only)
with AxTree1 do
begin
LinesAtRoot := EXTREELib.LinesAtRootEnum.exLinesAtRoot;
with (Columns.Add('P1') as EXTREELib.Column) do
begin
Def[EXTREELib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
PartialCheck := True;
end;
with (Columns.Add('P2') as EXTREELib.Column) do
begin
Def[EXTREELib.DefColumnEnum.exCellHasCheckBox] := TObject(True);
PartialCheck := True;
end;
with Items do
begin
h := AddItem('Root');
InsertItem(h,TObject(0),'Child 1');
InsertItem(h,TObject(0),'Child 2');
ExpandItem[h] := True;
end;
end
Delphi (standard)
with Tree1 do
begin
LinesAtRoot := EXTREELib_TLB.exLinesAtRoot;
with (IUnknown(Columns.Add('P1')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with (IUnknown(Columns.Add('P2')) as EXTREELib_TLB.Column) do
begin
Def[EXTREELib_TLB.exCellHasCheckBox] := OleVariant(True);
PartialCheck := True;
end;
with Items do
begin
h := AddItem('Root');
InsertItem(h,OleVariant(0),'Child 1');
InsertItem(h,OleVariant(0),'Child 2');
ExpandItem[h] := True;
end;
end
VFP
with thisform.Tree1
.LinesAtRoot = -1
with .Columns.Add("P1")
.Def(0) = .T.
.PartialCheck = .T.
endwith
with .Columns.Add("P2")
.Def(0) = .T.
.PartialCheck = .T.
endwith
with .Items
h = .AddItem("Root")
.InsertItem(h,0,"Child 1")
.InsertItem(h,0,"Child 2")
.ExpandItem(h) = .T.
endwith
endwith
dBASE Plus
local h,oTree,var_Column,var_Column1,var_Items
oTree = form.Activex1.nativeObject
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("P1")
// var_Column.Def(0) = true
with (oTree)
TemplateDef = [Dim var_Column]
TemplateDef = var_Column
Template = [var_Column.Def(0) = true]
endwith
var_Column.PartialCheck = true
var_Column1 = oTree.Columns.Add("P2")
// var_Column1.Def(0) = true
with (oTree)
TemplateDef = [Dim var_Column1]
TemplateDef = var_Column1
Template = [var_Column1.Def(0) = true]
endwith
var_Column1.PartialCheck = true
var_Items = oTree.Items
h = var_Items.AddItem("Root")
var_Items.InsertItem(h,0,"Child 1")
var_Items.InsertItem(h,0,"Child 2")
// var_Items.ExpandItem(h) = true
with (oTree)
TemplateDef = [Dim var_Items,h]
TemplateDef = var_Items
TemplateDef = h
Template = [var_Items.ExpandItem(h) = true]
endwith
XBasic (Alpha Five)
Dim h as N
Dim oTree as P
Dim var_Column as P
Dim var_Column1 as P
Dim var_Items as P
oTree = topparent:CONTROL_ACTIVEX1.activex
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("P1")
' var_Column.Def(0) = .t.
oTree.TemplateDef = "Dim var_Column"
oTree.TemplateDef = var_Column
oTree.Template = "var_Column.Def(0) = True"
var_Column.PartialCheck = .t.
var_Column1 = oTree.Columns.Add("P2")
' var_Column1.Def(0) = .t.
oTree.TemplateDef = "Dim var_Column1"
oTree.TemplateDef = var_Column1
oTree.Template = "var_Column1.Def(0) = True"
var_Column1.PartialCheck = .t.
var_Items = oTree.Items
h = var_Items.AddItem("Root")
var_Items.InsertItem(h,0,"Child 1")
var_Items.InsertItem(h,0,"Child 2")
' var_Items.ExpandItem(h) = .t.
oTree.TemplateDef = "Dim var_Items,h"
oTree.TemplateDef = var_Items
oTree.TemplateDef = h
oTree.Template = "var_Items.ExpandItem(h) = True"
Visual Objects
local var_Column,var_Column1 as IColumn
local var_Items as IItems
local h as USUAL
oDCOCX_Exontrol1:LinesAtRoot := exLinesAtRoot
var_Column := IColumn{oDCOCX_Exontrol1:Columns:Add("P1")}
var_Column:[Def,exCellHasCheckBox] := true
var_Column:PartialCheck := true
var_Column1 := IColumn{oDCOCX_Exontrol1:Columns:Add("P2")}
var_Column1:[Def,exCellHasCheckBox] := true
var_Column1:PartialCheck := true
var_Items := oDCOCX_Exontrol1:Items
h := var_Items:AddItem("Root")
var_Items:InsertItem(h,0,"Child 1")
var_Items:InsertItem(h,0,"Child 2")
var_Items:[ExpandItem,h] := true
PowerBuilder
OleObject oTree,var_Column,var_Column1,var_Items
any h
oTree = ole_1.Object
oTree.LinesAtRoot = -1
var_Column = oTree.Columns.Add("P1")
var_Column.Def(0,true)
var_Column.PartialCheck = true
var_Column1 = oTree.Columns.Add("P2")
var_Column1.Def(0,true)
var_Column1.PartialCheck = true
var_Items = oTree.Items
h = var_Items.AddItem("Root")
var_Items.InsertItem(h,0,"Child 1")
var_Items.InsertItem(h,0,"Child 2")
var_Items.ExpandItem(h,true)
Visual DataFlex
Procedure OnCreate
Forward Send OnCreate
Set ComLinesAtRoot to OLEexLinesAtRoot
Variant voColumns
Get ComColumns to voColumns
Handle hoColumns
Get Create (RefClass(cComColumns)) to hoColumns
Set pvComObject of hoColumns to voColumns
Variant voColumn
Get ComAdd of hoColumns "P1" to voColumn
Handle hoColumn
Get Create (RefClass(cComColumn)) to hoColumn
Set pvComObject of hoColumn to voColumn
Set ComDef of hoColumn OLEexCellHasCheckBox to True
Set ComPartialCheck of hoColumn to True
Send Destroy to hoColumn
Send Destroy to hoColumns
Variant voColumns1
Get ComColumns to voColumns1
Handle hoColumns1
Get Create (RefClass(cComColumns)) to hoColumns1
Set pvComObject of hoColumns1 to voColumns1
Variant voColumn1
Get ComAdd of hoColumns1 "P2" to voColumn1
Handle hoColumn1
Get Create (RefClass(cComColumn)) to hoColumn1
Set pvComObject of hoColumn1 to voColumn1
Set ComDef of hoColumn1 OLEexCellHasCheckBox to True
Set ComPartialCheck of hoColumn1 to True
Send Destroy to hoColumn1
Send Destroy to hoColumns1
Variant voItems
Get ComItems to voItems
Handle hoItems
Get Create (RefClass(cComItems)) to hoItems
Set pvComObject of hoItems to voItems
Variant h
Get ComAddItem of hoItems "Root" to h
Get ComInsertItem of hoItems h 0 "Child 1" to Nothing
Get ComInsertItem of hoItems h 0 "Child 2" to Nothing
Set ComExpandItem of hoItems h to True
Send Destroy to hoItems
End_Procedure
XBase++
#include "AppEvent.ch"
#include "ActiveX.ch"
PROCEDURE Main
LOCAL oForm
LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL
LOCAL oColumn,oColumn1
LOCAL oItems
LOCAL oTree
LOCAL h
oForm := XbpDialog():new( AppDesktop() )
oForm:drawingArea:clipChildren := .T.
oForm:create( ,,{100,100}, {640,480},, .F. )
oForm:close := {|| PostAppEvent( xbeP_Quit )}
oTree := XbpActiveXControl():new( oForm:drawingArea )
oTree:CLSID := "Exontrol.Tree.1" /*{3C5FC763-72BA-4B97-9985-81862E9251F2}*/
oTree:create(,, {10,60},{610,370} )
oTree:LinesAtRoot := -1/*exLinesAtRoot*/
oColumn := oTree:Columns():Add("P1")
oColumn:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn:PartialCheck := .T.
oColumn1 := oTree:Columns():Add("P2")
oColumn1:SetProperty("Def",0/*exCellHasCheckBox*/,.T.)
oColumn1:PartialCheck := .T.
oItems := oTree:Items()
h := oItems:AddItem("Root")
oItems:InsertItem(h,0,"Child 1")
oItems:InsertItem(h,0,"Child 2")
oItems:SetProperty("ExpandItem",h,.T.)
oForm:Show()
DO WHILE nEvent != xbeP_Quit
nEvent := AppEvent( @mp1, @mp2, @oXbp )
oXbp:handleEvent( nEvent, mp1, mp2 )
ENDDO
RETURN