Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies.
Стандартный интерфейс CADEditorX:
regsvr32 <полный путь к библиотеке CADEditorLib.ocx>
Например, для регистрации CADEditorX 64bit в операционной системе Windows 7 64-bit следует выполнить:
regsvr32 "c:\Program Files\CADSoftTools\CADEditorX 11\CADEditorLib.ocx"
Примечание: регистрация компонента CADEditorLib.ocx в системе выполняется на этапе установки. Ручная регистрация компонента в системе может понадобиться, если вы тестируете разные версии CADEditorX. Подробнее о служебной программе Regsvr32 можно узнать по ссылке: https://support.microsoft.com/ru-ru/kb/249873
Программное взаимодействие с элементом управления CADEditorX основано на использовании одной функции ProcessXML и одного события OnProcess.
Функция ProcessXML
Функция ProcessXML используется для обработки XML-инструкций. Она принимает входной XML в качестве аргумента, обрабатывает его и возвращает результат выполнения в XML формате. Примеры XML-инструкций представлены в демо-приложении XML IDE.
Синтаксис:
Delphi function ProcessXML(const AInput: WideString): WideString C# public string ProcessXML(string AInput) VB.NET Public Function ProcessXML(aInput As String) As String C++ BSTR ProcessXML(BSTR AInput) JScript public function ProcessXML(AInput : String) : String
AInput - входной XML документ; возвращаемое значение - XML-документ, который содержит некоторые входные данные.
Пример на C#:
private void button1_Click(object sender, EventArgs e) { string command ="<?xml version =\"1.0\" encoding=\"utf-8\"?><cadsofttools version =\"2\">" + "<command text =\"HideAllInterface\"/>" + "</cadsofttools>"; Process(command); } private void Process(string arg) { string result = axSgCADEditor1.ProcessXML(arg); label1.Text = result; }
Событие OnProcess
Событие OnProcess срабатывает в следующих случаях:
Это делает событие OnProcess полезным для обработки данных, возвращаемых в виде XML.
Синтаксис:
Delphi property OnProcess = procedure(ASender: TObject; const AXML: WideString) of object C# public event AxCADEditorLib.ISgCADEditorEvents_OnProcessEventHandler OnProcess public delegate void ISgCADEditorEvents_OnProcessEventHandler(object ASender,AxCADEditorLib.ISgCADEditorEvents_OnProcessEvent e) VB.NET Public Event OnProcess(ByVal aSender As Object, ByVal e As AxCADEditorLib.ISgCADEditorEvents_OnProcessEvent) C++ public IDispEventSimpleImpl<1, CCADEditorXEvents, &__uuidof(CADEditorLib::ISgCADEditorEvents)> JScript public event OnProcess(ASender : Object, AXML: String)
ASender – контрол, предоставляющий данные; AXML – XML-документ, содержащий выходные данные.
Пример на C#:
public Form1() { InitializeComponent(); axSgCADEditor1.OnProcess += new AxCADEditorLib.ISgCADEditorEvents_OnProcessEventHandler(axSgCADEditor1_OnProcess); } private void axSgCADEditor1_OnProcess(object sender, AxCADEditorLib.ISgCADEditorEvents_OnProcessEvent e) { label2.Text = e.aXML; } private void button2_Click(object sender, EventArgs e) { string sMouseDown = "<?xml version =\"1.0\" encoding=\"UTF-8\"?><cadsofttools version =\"2\">" + "<signtoevent Event =\"OnMouseDown\" Enabled =\"True\"/>" + "</cadsofttools>"; Process(sMouseDown); // Событие OnMouseDown - внутреннее событие CADEditorX }
Для выполнения сложных задач с помощью CAD XML API рекомендуется использовать XML-анализатор для обработки выходного XML. Существует большое количество XML парсеров для всех популярных языков программирования. MicrosoftWindows имеет технологию DOM для обработки XML, которая является довольно мощной, но медленной. Также имеется большое количество простых и быстрых парсеров XML, которые предложены в качестве OpenSource для многих языков программирования.