Type | Description | |||
Caption as Variant | A String expression that specifies the caption to be displayed on the element. The Caption property specifies the value of the Caption parameter. Use the CaptionAlign property to align the element's caption. | |||
Parent as Variant | A Long, String or Numeric expression that specifies the identifier of the parent element, or a reference to the parent element. The Parent property specifies the element's parent. The ID property indicates the element's identifier. | |||
Position as Variant | A Long expression that specifies the position of the element in the parent's children collection. If missing, the element is added at the end of the parent's children list |
Return | Description | |||
Element | A Reference to the newly inserted element. |
The following samples show how you can programmatically add a child element, or create a hierarchy:
VBA (MS Access, Excell...)
With Surface1 With .Elements .Add("Root").ID = "rootID" .Insert "Child 1","rootID" .Insert("Child 2","rootID").ID = "childID" .Insert "Child 3","rootID" .Insert "Sub-Child 1.2","childID" .Insert "Sub-Child 2.2","childID" End With End With
VB6
With Surface1 With .Elements .Add("Root").ID = "rootID" .Insert "Child 1","rootID" .Insert("Child 2","rootID").ID = "childID" .Insert "Child 3","rootID" .Insert "Sub-Child 1.2","childID" .Insert "Sub-Child 2.2","childID" End With End With
VB.NET
With Exsurface1 With .Elements .Add("Root").ID = "rootID" .Insert("Child 1","rootID") .Insert("Child 2","rootID").ID = "childID" .Insert("Child 3","rootID") .Insert("Sub-Child 1.2","childID") .Insert("Sub-Child 2.2","childID") End With End With
VB.NET for /COM
With AxSurface1 With .Elements .Add("Root").ID = "rootID" .Insert("Child 1","rootID") .Insert("Child 2","rootID").ID = "childID" .Insert("Child 3","rootID") .Insert("Sub-Child 1.2","childID") .Insert("Sub-Child 2.2","childID") End With End With
C++
/* Copy and paste the following directives to your header file as it defines the namespace 'EXSURFACELib' for the library: 'ExSurface 1.0 Control Library' #import <ExSurface.dll> using namespace EXSURFACELib; */ EXSURFACELib::ISurfacePtr spSurface1 = GetDlgItem(IDC_SURFACE1)->GetControlUnknown(); EXSURFACELib::IElementsPtr var_Elements = spSurface1->GetElements(); var_Elements->Add("Root",vtMissing,vtMissing)->PutID("rootID"); var_Elements->Insert("Child 1","rootID",vtMissing); var_Elements->Insert("Child 2","rootID",vtMissing)->PutID("childID"); var_Elements->Insert("Child 3","rootID",vtMissing); var_Elements->Insert("Sub-Child 1.2","childID",vtMissing); var_Elements->Insert("Sub-Child 2.2","childID",vtMissing);
C++ Builder
Exsurfacelib_tlb::IElementsPtr var_Elements = Surface1->Elements; var_Elements->Add(TVariant("Root"),TNoParam(),TNoParam())->set_ID(TVariant("rootID")); var_Elements->Insert(TVariant("Child 1"),TVariant("rootID"),TNoParam()); var_Elements->Insert(TVariant("Child 2"),TVariant("rootID"),TNoParam())->set_ID(TVariant("childID")); var_Elements->Insert(TVariant("Child 3"),TVariant("rootID"),TNoParam()); var_Elements->Insert(TVariant("Sub-Child 1.2"),TVariant("childID"),TNoParam()); var_Elements->Insert(TVariant("Sub-Child 2.2"),TVariant("childID"),TNoParam());
C#
exontrol.EXSURFACELib.Elements var_Elements = exsurface1.Elements; var_Elements.Add("Root",null,null).ID = "rootID"; var_Elements.Insert("Child 1","rootID",null); var_Elements.Insert("Child 2","rootID",null).ID = "childID"; var_Elements.Insert("Child 3","rootID",null); var_Elements.Insert("Sub-Child 1.2","childID",null); var_Elements.Insert("Sub-Child 2.2","childID",null);
JavaScript
<OBJECT classid="clsid:AC1DF7F4-0919-4364-8167-2F9B5155EA4B" id="Surface1"></OBJECT> <SCRIPT LANGUAGE="JScript"> var var_Elements = Surface1.Elements; var_Elements.Add("Root",null,null).ID = "rootID"; var_Elements.Insert("Child 1","rootID",null); var_Elements.Insert("Child 2","rootID",null).ID = "childID"; var_Elements.Insert("Child 3","rootID",null); var_Elements.Insert("Sub-Child 1.2","childID",null); var_Elements.Insert("Sub-Child 2.2","childID",null); </SCRIPT>
C# for /COM
EXSURFACELib.Elements var_Elements = axSurface1.Elements; var_Elements.Add("Root",null,null).ID = "rootID"; var_Elements.Insert("Child 1","rootID",null); var_Elements.Insert("Child 2","rootID",null).ID = "childID"; var_Elements.Insert("Child 3","rootID",null); var_Elements.Insert("Sub-Child 1.2","childID",null); var_Elements.Insert("Sub-Child 2.2","childID",null);
X++ (Dynamics Ax 2009)
public void init() { COM com_Element,com_Elements; anytype var_Element,var_Elements; ; super(); var_Elements = exsurface1.Elements(); com_Elements = var_Elements; var_Element = COM::createFromObject(com_Elements.Add("Root")); com_Element = var_Element; com_Element.ID("rootID"); com_Elements.Insert("Child 1","rootID"); var_Element = COM::createFromObject(com_Elements.Insert("Child 2","rootID")); com_Element = var_Element; com_Element.ID("childID"); com_Elements.Insert("Child 3","rootID"); com_Elements.Insert("Sub-Child 1.2","childID"); com_Elements.Insert("Sub-Child 2.2","childID"); }
Delphi 8 (.NET only)
with AxSurface1 do begin with Elements do begin Add('Root',Nil,Nil).ID := 'rootID'; Insert('Child 1','rootID',Nil); Insert('Child 2','rootID',Nil).ID := 'childID'; Insert('Child 3','rootID',Nil); Insert('Sub-Child 1.2','childID',Nil); Insert('Sub-Child 2.2','childID',Nil); end; end
Delphi (standard)
with Surface1 do begin with Elements do begin Add('Root',Null,Null).ID := 'rootID'; Insert('Child 1','rootID',Null); Insert('Child 2','rootID',Null).ID := 'childID'; Insert('Child 3','rootID',Null); Insert('Sub-Child 1.2','childID',Null); Insert('Sub-Child 2.2','childID',Null); end; end
VFP
with thisform.Surface1 with .Elements .Add("Root").ID = "rootID" .Insert("Child 1","rootID") .Insert("Child 2","rootID").ID = "childID" .Insert("Child 3","rootID") .Insert("Sub-Child 1.2","childID") .Insert("Sub-Child 2.2","childID") endwith endwith
dBASE Plus
local oSurface,var_Element,var_Element1,var_Elements oSurface = form.Activex1.nativeObject var_Elements = oSurface.Elements // var_Elements.Add("Root").ID = "rootID" var_Element = var_Elements.Add("Root") with (oSurface) TemplateDef = [Dim var_Element] TemplateDef = var_Element Template = [var_Element.ID = "rootID"] endwith var_Elements.Insert("Child 1","rootID") // var_Elements.Insert("Child 2","rootID").ID = "childID" var_Element1 = var_Elements.Insert("Child 2","rootID") with (oSurface) TemplateDef = [Dim var_Element1] TemplateDef = var_Element1 Template = [var_Element1.ID = "childID"] endwith var_Elements.Insert("Child 3","rootID") var_Elements.Insert("Sub-Child 1.2","childID") var_Elements.Insert("Sub-Child 2.2","childID")
XBasic (Alpha Five)
Dim oSurface as P Dim var_Element as P Dim var_Element1 as P Dim var_Elements as P oSurface = topparent:CONTROL_ACTIVEX1.activex var_Elements = oSurface.Elements ' var_Elements.Add("Root").ID = "rootID" var_Element = var_Elements.Add("Root") oSurface.TemplateDef = "Dim var_Element" oSurface.TemplateDef = var_Element oSurface.Template = "var_Element.ID = \"rootID\"" var_Elements.Insert("Child 1","rootID") ' var_Elements.Insert("Child 2","rootID").ID = "childID" var_Element1 = var_Elements.Insert("Child 2","rootID") oSurface.TemplateDef = "Dim var_Element1" oSurface.TemplateDef = var_Element1 oSurface.Template = "var_Element1.ID = \"childID\"" var_Elements.Insert("Child 3","rootID") var_Elements.Insert("Sub-Child 1.2","childID") var_Elements.Insert("Sub-Child 2.2","childID")
Visual Objects
local var_Elements as IElements var_Elements := oDCOCX_Exontrol1:Elements var_Elements:Add("Root",nil,nil):ID := "rootID" var_Elements:Insert("Child 1","rootID",nil) var_Elements:Insert("Child 2","rootID",nil):ID := "childID" var_Elements:Insert("Child 3","rootID",nil) var_Elements:Insert("Sub-Child 1.2","childID",nil) var_Elements:Insert("Sub-Child 2.2","childID",nil)
PowerBuilder
OleObject oSurface,var_Elements oSurface = ole_1.Object var_Elements = oSurface.Elements var_Elements.Add("Root").ID = "rootID" var_Elements.Insert("Child 1","rootID") var_Elements.Insert("Child 2","rootID").ID = "childID" var_Elements.Insert("Child 3","rootID") var_Elements.Insert("Sub-Child 1.2","childID") var_Elements.Insert("Sub-Child 2.2","childID")
Visual DataFlex
Procedure OnCreate Forward Send OnCreate Variant voElements Get ComElements to voElements Handle hoElements Get Create (RefClass(cComElements)) to hoElements Set pvComObject of hoElements to voElements Variant voElement Get ComAdd of hoElements "Root" Nothing Nothing to voElement Handle hoElement Get Create (RefClass(cComElement)) to hoElement Set pvComObject of hoElement to voElement Set ComID of hoElement to "rootID" Send Destroy to hoElement Get ComInsert of hoElements "Child 1" "rootID" Nothing to Nothing Variant voElement1 Get ComInsert of hoElements "Child 2" "rootID" Nothing to voElement1 Handle hoElement1 Get Create (RefClass(cComElement)) to hoElement1 Set pvComObject of hoElement1 to voElement1 Set ComID of hoElement1 to "childID" Send Destroy to hoElement1 Get ComInsert of hoElements "Child 3" "rootID" Nothing to Nothing Get ComInsert of hoElements "Sub-Child 1.2" "childID" Nothing to Nothing Get ComInsert of hoElements "Sub-Child 2.2" "childID" Nothing to Nothing Send Destroy to hoElements End_Procedure
XBase++
#include "AppEvent.ch" #include "ActiveX.ch" PROCEDURE Main LOCAL oForm LOCAL nEvent := 0, mp1 := NIL, mp2 := NIL, oXbp := NIL LOCAL oElements LOCAL oSurface oForm := XbpDialog():new( AppDesktop() ) oForm:drawingArea:clipChildren := .T. oForm:create( ,,{100,100}, {640,480},, .F. ) oForm:close := {|| PostAppEvent( xbeP_Quit )} oSurface := XbpActiveXControl():new( oForm:drawingArea ) oSurface:CLSID := "Exontrol.Surface.1" /*{AC1DF7F4-0919-4364-8167-2F9B5155EA4B}*/ oSurface:create(,, {10,60},{610,370} ) oElements := oSurface:Elements() oElements:Add("Root"):ID := "rootID" oElements:Insert("Child 1","rootID") oElements:Insert("Child 2","rootID"):ID := "childID" oElements:Insert("Child 3","rootID") oElements:Insert("Sub-Child 1.2","childID") oElements:Insert("Sub-Child 2.2","childID") oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN