Type | Description | |||
Control as Variant | A string expression that can be formatted as follows: a prog ID, a CLSID, a URL, a reference to an Active document , a fragment of HTML. The Control property returns the value of Control parameter. | |||
License as Variant | A string expression that indicates the runtime license key for the component being inserted, if required. Only, the vendor of the component you are going to use is able to give you such of runtime license, so please contact the control's vendor for such of key. Your development license key is not compatible with the runtime license key, so it can't be used here. The License property specifies the runtime-license of the control. | |||
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. | |||
Position as Variant | The position of the element in the parent's children collection. If missing, the element is added at the end of the children list. The ChildPosition property returns the element's position in the parent children collection. |
Return | Description | |||
Element | An Element object that hosts the specified control. |
The control supports ActiveX hosting, or in other words, any element can host another inside controls. The InsertControl property adds a new Element object with the Type set on exElementHostControl, that hosts an ActiveX control. The inside ActiveX control is specified by the Control and License parameters. The Object property returns a reference to newly created control. The ExSurface control fires the OLEEvent event if an inside ActiveX control fires an event. Use the ElementFormat property to specify the area where the inner control is displayed.
The Control parameter must be formatted in one of the following ways:
The following samples shows how you can host a Command button:
VBA (MS Access, Excell...)
With Surface1 With .Elements With .InsertControl("Forms.CommandButton.1") .ElementFormat = """check"":18,""client""" .Object.Caption = "command" .ShowCheckBox = True .Height = 48 .Width = 128 End With End With End With
VB6
With Surface1 With .Elements With .InsertControl("Forms.CommandButton.1") .ElementFormat = """check"":18,""client""" .Object.Caption = "command" .ShowCheckBox = True .Height = 48 .Width = 128 End With End With End With
VB.NET
With Exsurface1 With .Elements With .InsertControl("Forms.CommandButton.1") .ElementFormat = """check"":18,""client""" .Object.Caption = "command" .ShowCheckBox = True .Height = 48 .Width = 128 End With End With End With
VB.NET for /COM
With AxSurface1 With .Elements With .InsertControl("Forms.CommandButton.1") .ElementFormat = """check"":18,""client""" .Object.Caption = "command" .ShowCheckBox = True .Height = 48 .Width = 128 End With 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();
EXSURFACELib::IElementPtr var_Element = var_Elements->InsertControl("Forms.CommandButton.1",vtMissing,vtMissing,vtMissing);
var_Element->PutElementFormat(L"\"check\":18,\"client\"");
/*
Copy and paste the following directives to your header file as
it defines the namespace 'MSForms' for the library: 'Microsoft Forms 2.0 Object Library'
#import <FM20.DLL>
*/
((MSForms::ICommandButtonPtr)(var_Element->GetObject()))->PutCaption(L"command");
var_Element->PutShowCheckBox(VARIANT_TRUE);
var_Element->PutHeight(48);
var_Element->PutWidth(128);
C++ Builder
Exsurfacelib_tlb::IElementsPtr var_Elements = Surface1->Elements; Exsurfacelib_tlb::IElementPtr var_Element = var_Elements->InsertControl(TVariant("Forms.CommandButton.1"),TNoParam(),TNoParam(),TNoParam()); var_Element->ElementFormat = L"\"check\":18,\"client\""; (IDispatch*)var_Element->Object->Caption = L"command"; var_Element->ShowCheckBox = true; var_Element->Height = 48; var_Element->Width = 128;
C#
exontrol.EXSURFACELib.Elements var_Elements = exsurface1.Elements; exontrol.EXSURFACELib.Element var_Element = var_Elements.InsertControl("Forms.CommandButton.1",null,null,null); var_Element.ElementFormat = "\"check\":18,\"client\""; // Add 'Microsoft Forms 2.0 Object Library' reference to your project. (var_Element.Object as MSForms.CommandButton).Caption = "command"; var_Element.ShowCheckBox = true; var_Element.Height = 48; var_Element.Width = 128;
JavaScript
<OBJECT classid="clsid:AC1DF7F4-0919-4364-8167-2F9B5155EA4B" id="Surface1"></OBJECT> <SCRIPT LANGUAGE="JScript"> var var_Elements = Surface1.Elements; var var_Element = var_Elements.InsertControl("Forms.CommandButton.1",null,null,null); var_Element.ElementFormat = "\"check\":18,\"client\""; var_Element.Object.Caption = "command"; var_Element.ShowCheckBox = true; var_Element.Height = 48; var_Element.Width = 128; </SCRIPT>
C# for /COM
EXSURFACELib.Elements var_Elements = axSurface1.Elements; EXSURFACELib.Element var_Element = var_Elements.InsertControl("Forms.CommandButton.1",null,null,null); var_Element.ElementFormat = "\"check\":18,\"client\""; // Add 'Microsoft Forms 2.0 Object Library' reference to your project. (var_Element.Object as MSForms.CommandButton).Caption = "command"; var_Element.ShowCheckBox = true; var_Element.Height = 48; var_Element.Width = 128;
X++ (Dynamics Ax 2009)
public void init() { COM com_Element,com_Elements,com_Object; anytype var_Element,var_Elements,var_Object; ; super(); var_Elements = exsurface1.Elements(); com_Elements = var_Elements; var_Element = com_Elements.InsertControl("Forms.CommandButton.1"); com_Element = var_Element; com_Element.ElementFormat("\"check\":18,\"client\""); var_Object = COM::createFromObject(com_Element.Object()); com_Object = var_Object; com_Object.Caption("command"); com_Element.ShowCheckBox(true); com_Element.Height(48); com_Element.Width(128); }
Delphi 8 (.NET only)
with AxSurface1 do begin with Elements do begin with InsertControl('Forms.CommandButton.1',Nil,Nil,Nil) do begin ElementFormat := '"check":18,"client"'; (Object as MSForms.CommandButton).Caption := 'command'; ShowCheckBox := True; Height := 48; Width := 128; end; end; end
Delphi (standard)
with Surface1 do begin with Elements do begin with InsertControl('Forms.CommandButton.1',Null,Null,Null) do begin ElementFormat := '"check":18,"client"'; (IUnknown(Object) as MSForms_TLB.CommandButton).Caption := 'command'; ShowCheckBox := True; Height := 48; Width := 128; end; end; end
VFP
with thisform.Surface1 with .Elements with .InsertControl("Forms.CommandButton.1") .ElementFormat = ""+chr(34)+"check"+chr(34)+":18,"+chr(34)+"client"+chr(34)+"" .Object.Caption = "command" .ShowCheckBox = .T. .Height = 48 .Width = 128 endwith endwith endwith
dBASE Plus
local oSurface,var_Element,var_Elements oSurface = form.Activex1.nativeObject var_Elements = oSurface.Elements var_Element = var_Elements.InsertControl("Forms.CommandButton.1") var_Element.ElementFormat = "" + ["] + "check" + ["] + ":18," + ["] + "client" + ["] + "" var_Element.Object.Caption = "command" var_Element.ShowCheckBox = true var_Element.Height = 48 var_Element.Width = 128
XBasic (Alpha Five)
Dim oSurface as P Dim var_Element as P Dim var_Elements as P oSurface = topparent:CONTROL_ACTIVEX1.activex var_Elements = oSurface.Elements var_Element = var_Elements.InsertControl("Forms.CommandButton.1") var_Element.ElementFormat = "\"check\":18,\"client\"" var_Element.Object.Caption = "command" var_Element.ShowCheckBox = .t. var_Element.Height = 48 var_Element.Width = 128
Visual Objects
local var_Element as IElement local var_Elements as IElements var_Elements := oDCOCX_Exontrol1:Elements var_Element := var_Elements:InsertControl("Forms.CommandButton.1",nil,nil,nil) var_Element:ElementFormat := "" + CHR(34) + "check" + CHR(34) + ":18," + CHR(34) + "client" + CHR(34) + "" // Generate Source for 'Microsoft Forms 2.0 Object Library' server from Tools\Automation Server... ICommandButton{var_Element:Object}:Caption := "command" var_Element:ShowCheckBox := true var_Element:Height := 48 var_Element:Width := 128
PowerBuilder
OleObject oSurface,var_Element,var_Elements oSurface = ole_1.Object var_Elements = oSurface.Elements var_Element = var_Elements.InsertControl("Forms.CommandButton.1") var_Element.ElementFormat = "" + CHAR(34) + "check" + CHAR(34) + ":18," + CHAR(34) + "client" + CHAR(34) + "" var_Element.Object.Caption = "command" var_Element.ShowCheckBox = true var_Element.Height = 48 var_Element.Width = 128
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 ComInsertControl of hoElements "Forms.CommandButton.1" Nothing Nothing Nothing to voElement
Handle hoElement
Get Create (RefClass(cComElement)) to hoElement
Set pvComObject of hoElement to voElement
Set ComElementFormat of hoElement to ""check":18,"client""
Variant voCommandButton
Get ComObject of hoElement to voCommandButton
Handle hoCommandButton
Get Create (RefClass(cComCommandButton)) to hoCommandButton
Set pvComObject of hoCommandButton to voCommandButton
Set ComCaption of hoCommandButton to "command"
Send Destroy to hoCommandButton
Set ComShowCheckBox of hoElement to True
Set ComHeight of hoElement to 48
Set ComWidth of hoElement to 128
Send Destroy to hoElement
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 oElement 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() oElement := oElements:InsertControl("Forms.CommandButton.1") oElement:ElementFormat := "" + CHR(34) + "check" + CHR(34) + ":18," + CHR(34) + "client" + CHR(34) + "" oElement:Object():Caption := "command" oElement:ShowCheckBox := .T. oElement:Height := 48 oElement:Width := 128 oForm:Show() DO WHILE nEvent != xbeP_Quit nEvent := AppEvent( @mp1, @mp2, @oXbp ) oXbp:handleEvent( nEvent, mp1, mp2 ) ENDDO RETURN