компонент Microsoft ActiveX TreeView

Вопросы, не попадающие в другие разделы.

компонент Microsoft ActiveX TreeView

Сообщение Eraser » Пт янв 14, 2011 8:35 am

Какими методами и свойствами управляется в рантайме Аctivex TreeView (просмотр своих элементов в виде дерева) ? Где можно глянуть примеры?
Ибо вставив этот объект в WinCC получили полный доступ ко всем его методам (через VBA), а вот в окне InTouch при вставке этого объекта многие методы не отображаются. Интересует заполнение вновь созданного ActiveX и получение индекса по выделенному узлу.
Eraser
 
Сообщения: 76
Зарегистрирован: Пт апр 18, 2008 12:33 pm

Re: компонент Microsoft ActiveX TreeView

Сообщение Klinkmann_Msk » Пт янв 14, 2011 11:32 am

Eraser писал(а):Какими методами и свойствами управляется в рантайме Аctivex TreeView (просмотр своих элементов в виде дерева) ? Где можно глянуть примеры?
Ибо вставив этот объект в WinCC получили полный доступ ко всем его методам (через VBA), а вот в окне InTouch при вставке этого объекта многие методы не отображаются. Интересует заполнение вновь созданного ActiveX и получение индекса по выделенному узлу.

О каком именно ActiveX идёт речь?
AlarmTreeViewer, TreeCtrl,... ?
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение Eraser » Вт янв 18, 2011 6:08 am

Microsoft TreeCtrl 6.0
Eraser
 
Сообщения: 76
Зарегистрирован: Пт апр 18, 2008 12:33 pm

Сообщение Klinkmann_Msk » Ср янв 19, 2011 7:39 am

Здесь была ерунда...
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Сообщение misha_os » Чт янв 20, 2011 1:33 pm

Хотелось бы узнать, есть ли решение по заполнению ActiveX Microsoft TreeCtrl 6.0 в InTouch?
misha_os
 
Сообщения: 8
Зарегистрирован: Чт окт 21, 2010 9:35 am

Сообщение Klinkmann_Msk » Пт янв 21, 2011 5:24 am

misha_os писал(а):Хотелось бы узнать, есть ли решение по заполнению ActiveX Microsoft TreeCtrl 6.0 в InTouch?

Ни примеров, ни описаний в доке не нашёл.
Klinkmann_Msk
 
Сообщения: 819
Зарегистрирован: Пт сен 18, 2009 10:12 am

Re: компонент Microsoft ActiveX TreeView

Сообщение SharkBrain » Пн окт 10, 2011 6:38 pm

Так же очень актуальна тема возможности использования Microsoft TreeView Control в InTouch. Любые вариации заполнения дерева (Nodes.Add) выдают ошибки. К сожалению ни в сети, ни на данном сайте ответа нет. :(
SharkBrain
 
Сообщения: 4
Зарегистрирован: Чт апр 10, 2008 2:01 pm

Re: компонент Microsoft ActiveX TreeView

Сообщение Basilio » Вт окт 11, 2011 7:12 pm

You have to check the MSDN documentation for the TreeControl. However, you may not be able to get the Nodes collection object to work properly since InTouch ActiveX container does not support parameterized properties. You may have to create a wrapper control that encapsulates an instance of a TreeControl and possibly an ImageList control

Since you are using InTouch 10, then another option is to embed the .Net Control TreeView. I tested it and it works. Here are the steps for how to do this.

- In the IDE do Galaxy/Import/Client Control

- Select C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\System.Windows.Forms.dll

- Create a new Archestra Graphic

- Embed Graphic and select the .Net Control TreeView

- Add a button and add a Action Script to that button with this script:

TreeView1.Nodes.add("test1");

- Add this new Archestra Graphic to a managed or published app InTouch window

- When you press the button in WindowViewer then the Tree View gets populated with "test1".
Basilio
 
Сообщения: 47
Зарегистрирован: Вт мар 22, 2011 7:42 am

Re: компонент Microsoft ActiveX TreeView

Сообщение LexSL » Чт окт 13, 2011 5:21 pm

Я тоже пробовал импортировать библиотеку контролов в IDE, добавлять TreeView в свой графический элемент, заполнять у него коллекцию Items и вставлять его в InTouch. во только он не сохраняет свою коллекцию и в окне Интача айтемы не появляются.
Получилось сделать вот как (правда он не AciveX :) ):
1. создал свой userControl в VisualStudio (пользовался C#, так как думал чтобы по-быстрее проверить, можно в принципе и на С++)
2. кинул на холст TreeView, добавил ему в коллекцию несколько айтемов, например :
а. Окно1
б. Окно2
в. Окно3
Свойство Name у этих айтемов дал осмысленные (Window1, Window2, Window3)
4. Добавил public событие и делегат этого события:

Код: Выделить всё
public delegate void TreeNodeClickHandler(object sender, TreeNodeMouseClickEventArgs e);

public event TreeNodeClickHandler TreeNodeClick;

5. В TreeView (который на форме) для события NodeMouseClick вызываю объявленное public событие:

Код: Выделить всё
private void treeView1_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e)
        {
        Console.Beep();
         //Вызываем public событие если оно не пустое
            if (TreeNodeClick != null)
            {
                TreeNodeClick.Invoke(this, e);
            }
         }

Ну и все, в принципе, компилите, получившуюся dll импортируете в IDE, добавляете в свой символ этот userControl, два раза по нему кликаете и ищете в списке событий своё public событие (TreeNodeClick) и можно получить доступ к тому Item, по которому произошел "клик" мышой (через TreeNodeMouseClickEventArgs e). Например:
Код: Выделить всё
DIM NodeName AS Message;
NodeName = e.Node.Name;
IF NodeName == "Window1" THEN
ShowWindowName= "Главный экран";
ENDIF;
IF NodeName == "Window2" THEN
ShowWindowName= "Таблица";
ENDIF;
ShowWindowTrigger = 1;

ShowWindowName и ShowWindowTrigger - это CustomProperties String и Boolean соответственно, привязаны к тегам Интача (InTouch:ShowWindowName и InTouch:ShowWindowTrigger). На ShowWindowTrigger повешен Condition скрипт OnTrue:
Код: Выделить всё
Show ShowWindowName;
ShowWindowTrigger = 0;

В результате по клику мышкой на Item c именем Окно1 (Name = Window1) откроется окно InTouch "Главный экран".
LexSL
 
Сообщения: 80
Зарегистрирован: Вт дек 14, 2010 2:53 pm


Вернуться в Другое

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 63