Работают ли ActiveX компоненты в ТМ6? При попытке привазать ко входу или выходу в таблице свойств какой-нибудь канал(аргумент) ничего не получается (не появляется список выбора каналов).
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В настоящее время решается вопрос о спецификации интерфейсов ActiveX, поддерживаемых в Трейс Моуд 6. Мы уточним это и дадим Вам ответ.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Полная поддержка ActiveX появится в релизе 6.03
Posted by Савинцев Евгений (Участник № / Member № 611) on :
Замечание по ActiveX. При попытке сохранения в ТМ IDE проекта с ActiveX компонентом созданным с использованием библиотеки Forms 2.0, windows выдает сообщение об ошибке и закрывает редактор
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Смотрите мое сообщение выше... И то - только ActiveX, которые разрабатывались для ТМ, а не сторонних решщений.
Posted by Catherine (Участник № / Member № 1682) on :
А существует ли ActiveX (поддерживаемый Trace Mode), позволяющий отображать динамически изменяющийся текстовый файл?
Posted by Kramarenko Stanislav (Участник № / Member № 119) on :
А хотелось бы и некоторые сторонние ActiveX цеплять... уж больно симпатичные бывают
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Catherine: А существует ли ActiveX (поддерживаемый Trace Mode), позволяющий отображать динамически изменяющийся текстовый файл?
Нам таковые не известны.
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
quote:Отправитель / Originally posted by Kramarenko Stanislav: А хотелось бы и некоторые сторонние ActiveX цеплять... уж больно симпатичные бывают
Если ActiveX реализован по стандартному интерфейсу IDispatch, то он может использоваться в ТМ, если в ActiveX используются какие-либо собственные интерфейсы - мы с ними работать не можем, потому как ничего о них заранее знать не можем.
Posted by Дмитрий Юрьевич М. (Участник № / Member № 1930) on :
Возникли следующие вопросы, связанные с ActiveX (TraceMode 6.03):
1) При вставке стандартного компонента Microsoft Forms 2.0 Scroll Bar (как нарисовано в хелпе), вообще не появляется окно свойств компонента.
2) Отсутствует папка TMX, в которой должны лежать файлы tmxaux.idl, chBase.tlb и т.д.
3) При создании ActiveX компонента на Borland C++ Builder 6.0 рушится монитор реального времени при запуске (с критической ошибкой)
4) При создании компонента на Microsoft Visual C++ 6.0 не отображается окно свойств компонента (см. пункт 1).
----------- Общий вопрос.... Реально ли создать компонент, работающий в TraceMode, на Visual C++ с помощью их wizard'a Active-X? Или всё нужно писать с абсолютного нуля?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
1. Должна быть зарегистрирована библиотека ChBase.dll 2. Папка TMX содержится в ТМ версии 6.04 (доступна на сайте). 3. В той же папке содержаться и примеры компонентов. 4. см. пункт 1. Можно использовать wizard ActiveX, самое главное соблюдать регламент по созданию этих компонентов. (см. Справочную систему ТМ)
Posted by Grigorovskih (Участник № / Member № 1915) on :
Пытался разобраться с применением ActiveX, при разработке проекта, в результате возник вопрос: Как использовать ActiveX в TM 6.04 которые поддерживаются в ТМ, если в открывающемся окне списка компонентов, при установке флага "поддерживаемые только ТМ", всё исчезает?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Речь идет о компонентах, специально разработанных в свое время для TRACE MODE 5. Если у Вас не было этой системы, то и зарегистрированных компонентов на Вашем ПК нет.
Posted by Grigorovskih (Участник № / Member № 1915) on :
Хорошо, т.е. если я зарегестрирую библиотеку ChBase.dll, то смогу воспользоваться хотябы теми компонентами которые реализованы по стандартному интерфейсу IDispatch? И ещё вопрос, если Вас конечно не затруднит, подскажите вкрадце пожалуйста как зарегестрировать вышеупомянутую библиотеку? Заранее благодарен!
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Регистрация данной библиотеки позволяет вывести в свойствах ActiveX компонента диалог "Привязка к каналу". Регистрация библиотеки: 1. Скопируйте библиотеку ChBase.dll в папку system32 2. Выполните команду regsvr32 ChBase.dll
Posted by SerchenyaN (Участник № / Member № 2877) on :
В руководстве пользователя было написано, что запись в канал TM происходит, если при привязке установить событие. Как должно быть реализовано это событие?
Компонент реализуется на С#? так как требуется поддержка некоторых классов из .Net Framework...
Компонент работает с таблицей свойств, с диалогом привязки, имеется возможность выбрать событие, компонент также принимает значения из каналов.
Но какое бы событие не выбиралось в диалоге привязки запись в каналы TM из ActiveX не происходит, с кем это может быть связано ?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Нужно проверить событие другим контейнером, например, Test Container из состава Visual Studio v. 6 - 2005.
Posted by SerchenyaN (Участник № / Member № 2877) on :
События отлавливаются другими контейнерами...
происходит ли при запиcи значения В канал из некоторого свойства элемента ActiveX проверка на S_OK?
как должен выглядеть метод для чтения свойства?
[id(0), propget] long ChanelValue();
или
[id(0), propget] unsigned long ChanelValue([in, out] long* rhs);
(во втором случае процедура возвращает 0 (S_OK), unsigned long эквивалентно HRESULT)
имеет ли это разницу?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Какой интерфейс для доступа из Тrace Mode компонент Вы реализуете и какой интерфейс Тrace Mode используете? ChanelValue - условное название? Или реальный метод какого-то интерфейса? Какого?
Posted by SerchenyaN (Участник № / Member № 2877) on :
Для доступа используется интерфейс IDispatch... ChanelValue - это название метода тестового компонента...
вот пример объявления данного интерфейса в C# [GuidAttribute("DBB72496-062E-408b-AEBB-046DBC1F08B1")] [InterfaceType(ComInterfaceType.InterfaceIsIDispatch)] public interface ITmGridControlProperties { int ChanelValue { [DispId(0x0)] get; [DispId(0x0)] set; } }
реализация данного свойства в классе: [ComDefaultInterface(typeof(ITmGridControlProperties))] [ComSourceInterfaces(typeof(ITmGridControlEvents))] [ProgId("MAMT.TraceModeExtentions.TmGridControl")] [GuidAttribute("5177A057-4AFE-4651-8AC5-9AC367DD0F96")] [ClassInterface(ClassInterfaceType.AutoDual)] public partial class TmGridControl : UserControl, ITmGridControlEvents, ITmGridControlProperties { public int ChanelValue { get { ChanelValueRead(); return chanelValue; } set { chanelValue = value; ChanelValueChanged(); } } }
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
Пришлите исходники своего простейшего рабочего компонента. Наши программисты пытаются разобраться, но пока при попытке получить точку подключения события своего примера получаем код возврата EVENT_E_FIRST, что не дает никакой информации. Еще укажите, пожалуйста, в каких контейнерах Вы проверяли.