Does your control support partial-check ( three states ) feature for each column?
VBA (MS Access, Excell...)
1234567891011121314151617With 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
1234567891011121314151617With 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
123456789101112131415161718Dim 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
123456789101112131415161718Dim 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++
1234567891011121314151617181920/*
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
123456789101112Tree1->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#
123456789101112extree1.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
12345678910111213141516<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
123456789101112axTree1.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)
12345678910111213141516171819202122public 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)
123456789101112131415161718192021with 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)
123456789101112131415161718192021with 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
1234567891011121314151617with 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
12345678910111213141516171819202122232425262728293031local 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)
12345678910111213141516171819202122232425262728293031Dim 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
12345678910111213141516local 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
12345678910111213141516OleObject 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
12345678910111213141516171819202122232425262728293031323334353637383940414243Procedure 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++
123456789101112131415161718192021222324252627282930313233343536373839#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