Тема: CSDN.CsdnAxForm в .Net

Столкнулись с такой проблемой,  что CSDN.CsdnAxFormClass из вашего API не  является контролом, и от того не может быть помещен на .Net форму.
Есть класс  AxCSDN.AxCsdnAxFormClass, который может быть помещен на форму, однако не реализует необходимых интерфейсов для метода Show того же самого IMesurements.
Что мы делаем не так?

Re: CSDN.CsdnAxForm в .Net

Здравствуйте!
Создал примерчик, вроде все работает. Какая Visual Studio?

Re: CSDN.CsdnAxForm в .Net

а..судя по прошлой вашей темке тут некоторое недопонимание.

Visual Studio создает враппер вокруг классов ActiveX.  Interop.CSDN.dll - это просто библиотека типов. Надо еще создать врапперы для наших контролов (так же генерятся студией) - тогда можно их использовать как обычные компоненты Net.

Re: CSDN.CsdnAxForm в .Net

Где можно подробно почитать об использовании TCS API в Visual Studio (применительно к С#)?

Re: CSDN.CsdnAxForm в .Net

Да собственно ничего особенного для Net там нет, стандартный функционал использования ActiveX объектов.
Код по использованию ActiveX как правило идентичен на разных языках, просто немного окружение и синтаксис отличается. Так что в принципе все примеры с небольшой доработкой будут работать и там.

Re: CSDN.CsdnAxForm в .Net

Мне как-то попадались примеры где-то в описаниях (именно примеры, а не описания собственно API).
Но вот что-то не могу вспомнить, где искать. Не подскажете?

Re: CSDN.CsdnAxForm в .Net

Поищем. Под рукой сейчас нет.

Самый простой способ - взять из дистрибутива нашу сборку Interop.CSDN.dll  (или Interop.CSDN.2.dll  из TechnologiCS 6.0.1 для Net 2.0)

подключите ее к вашему проекту -  ну и далее можем любой примерчик туда конвертнуть без особого труда. Например что то типа

CSDN.TCS fTCS = new CSDN.TCS();
CSDN.Tcs_Application fTCSApp = (CSDN.Tcs_Application) fTCS.Login();
CSDN.IArchive fArchive = fTCSApp.Archive;
int x = fArchive.get_ShowModal( "Архив TechnologiCS" );

(изменено: Виталий Д, 11 октября 2010 14:00:03)

Re: CSDN.CsdnAxForm в .Net

или Interop.CSDN.2.dll  из TechnologiCS 6.0.1 для Net 2.0

У меня сейчас .NET 3.5 (ну и 2.0 то же) - Interop.CSDN.dll мне не подойдёт?

Постоянно падает студия с сообщением "LIC_ERRLICENCE" - это по причине неподходящей версии Interop.CSDN.dll?

Re: CSDN.CsdnAxForm в .Net

У меня сейчас .NET 3.5 (ну и 2.0 то же) - Interop.CSDN.dll мне не подойдёт?

Можно и с ней работать, новая версия со старыми сборками работает.

Постоянно падает студия с сообщением "LIC_ERRLICENCE"

Попробуйте на время  работы Visual Studio разрегистрировать TCS API. Обычно это из за того  что в дизайн-тайме наши библиотеки пользуются.

При запуске приложения надо будет конечно зарегистрировать АПИ снова.  Проект надо будет просто настроить чтобы он не поднимал в дизайн-тайм библиотеки TechnologiCS.

Re: CSDN.CsdnAxForm в .Net

на время  работы Visual Studio разрегистрировать TCS API

Это с пом. UnRegTCS_API.bat из рабочего каталога ТКС?

Проект надо будет просто настроить чтобы он не поднимал в дизайн-тайм библиотеки TechnologiCS

Буду благодарен, если подскажете, как это сделать

CSDN.TCS fTCS = new CSDN.TCS();
CSDN.Tcs_Application fTCSApp = (CSDN.Tcs_Application) fTCS.Login();
CSDN.IArchive fArchive = fTCSApp.Archive;
int x = fArchive.get_ShowModal( "Архив TechnologiCS" );

- примерчик работает, однако кнопки в панели инструментов появившейся формы не содержат картинок

Re: CSDN.CsdnAxForm в .Net

Это с пом. UnRegTCS_API.bat из рабочего каталога ТКС?

Да

Проект надо будет просто настроить чтобы он не поднимал в дизайн-тайм библиотеки TechnologiCS

Буду благодарен, если подскажете, как это сделать

Как пример будет готов выложим его здесь,  хотя судя по тому что вы здесь пишете у вас все работает уже.

примерчик работает, однако кнопки в панели инструментов появившейся формы не содержат картинок

Отключите темы для для вашего приложения (или просто на компьютере).

Re: CSDN.CsdnAxForm в .Net

Это с пом. UnRegTCS_API.bat из рабочего каталога ТКС?

Но в таком случае проект не открывается (правда, я на форму поместил CSDN'овский грид...

Спасибо, буду признателен за пример проекта на C#

Re: CSDN.CsdnAxForm в .Net

Но в таком случае проект не открывается (правда, я на форму поместил CSDN'овский грид...

ну в этом и проблема. Создавайте CSDN'овский грид  просто в рун-тайм. Именно из-за этого и поднимаются библиотеки.

Re: CSDN.CsdnAxForm в .Net

Отключите темы для для вашего приложения (или просто на компьютере).

Службу "Темы" отключил, несколько раз ТКС-форма запустилась с картинками на кнопках, но потом снова кнопки "голые". В свойтвах ехе-шника указал "отключить визуальное оформление" - и это не помогло. Хотя  картинки для пунктов в выпадающих меню кое-где встречаются.

Имеется ли описание TCS API не в плоском виде, а структурированное, где функционал к примеру  был бы разделён на интерфейсы, возвращающие интерактивные окна, просто некие данные в том или ином режиме и пр.
Имеющийся в форуме раздел под названием "Идеология использования API" содержит, мягко говоря, маловато информации.

Re: CSDN.CsdnAxForm в .Net

ну обычно помогает отключение визуального оформления  или просто включение Классической темы. Хотя может что-то другое у вас - киньте картинку пожалуйста.

(изменено: Виталий Д, 13 октября 2010 07:58:49)

Re: CSDN.CsdnAxForm в .Net

Картинка такая:
(при этом есть меню, в которых картинок нет вообще, или есть частично

Post's attachments

NoBitmap.jpg 177.25 Кб, файл не был скачан. 

You don't have the permssions to download the attachments of this post.

Re: CSDN.CsdnAxForm в .Net

хм. любопытная картинка.

Только визуальное оформление надо отключить у вашей программы, которая пользует TCS Api ( а ну у TCS Api).  И запускайте на всякий случай именно этот ярлык, на котором настраивали.

Re: CSDN.CsdnAxForm в .Net

Волею судеб моя программа так и называется - tcsApi.exe
Попробую назвать иначе...

Re: CSDN.CsdnAxForm в .Net

Изменение имени сборки с последующим отключением визуального оформления ничего не изменило

Re: CSDN.CsdnAxForm в .Net

ясно. Ну попробуем повторить. Вообще темы несколько по иному влияют, у вас достаточно интересный эффект получился, но кроме тем пока ничего предположить не могу. Если только цветовая палитра какие нибудь 16 цветов стоит, но щас такое не выставишь думаю.

Re: CSDN.CsdnAxForm в .Net

Здравствуйте,
Вопрос такой, по приведенному выше примеру:

CSDN.IArchive fArchive = fTCSApp.Archive;
int x = fArchive.get_ShowModal( "Архив TechnologiCS" );

- появившаяся форма закрывается с результатом "1", если выполнить двойной клик на области таблицы. Полагаю, что такая реакция на двойной клик более подходит для get_RunModuleForSelect (что и наблюдается)

Не прояснился ли вопрос с неотрисовкой картинок на кнопках? Может быть имеет смысл попробовать с Interop.CSDN.2.dll?
В литературе пишут о возможности сгенерировать враппер для ActiveX вручную, с пом.  tlbimp.exe. Какую dll из поставки ТКС следует предоставить этой утилите для обработки?

Re: CSDN.CsdnAxForm в .Net

Кроме того, не может ли проблема с кнопками быть связана с тем, что в соответствии с рекомендацией

Попробуйте на время  работы Visual Studio разрегистрировать TCS API. Обычно это из за того  что в дизайн-тайме наши библиотеки пользуются.

При запуске приложения надо будет конечно зарегистрировать АПИ снова.

несколько раз выполнялась разрегистрация/регистрация TcsApi ?
Возможно следует как-то и в VS перерегистрировать соотв. СОМ-библиотеки?

Re: CSDN.CsdnAxForm в .Net

- появившаяся форма закрывается с результатом "1", если выполнить двойной клик на области таблицы.

Описано в справке IPModule.ShowModal, как правило двойной клик аналогичен Ok.

Не прояснился ли вопрос с неотрисовкой картинок на кнопках?

Нет пока, даже не занимались этим.

Может быть имеет смысл попробовать с Interop.CSDN.2.dll

Это просто описание типов для Net - большого значения не имеет.

В литературе пишут о возможности сгенерировать враппер для ActiveX вручную, с пом.  tlbimp.exe. Какую dll из поставки ТКС следует предоставить этой утилите для обработки?

Любую, библиотеки одинаковые.  Но не пересекайтесь по имени с TechnologiCS или храните свои сборки отдельно, дабы не запутаться.

(изменено: Светлаков Кирилл, 2 ноября 2010 14:02:04)

Re: CSDN.CsdnAxForm в .Net

Пример использования AxForm на C#.

Visual Studio 2008 (9.0.30729.1 SP)
.Net Framework 3.5 SP1

Проблема с отрисовкой картинок не проявляется.

Post's attachments

NmkAxForm.zip 1.35 Мб, 9 скачиваний с 2010-11-02 

You don't have the permssions to download the attachments of this post.