C++Builder
  Начало   Форум   Помощь Войти Регистрация  
Страниц: [1]   Вниз
  Печать  
Автор Тема: Обмен данными с приложением ActiveX  (Прочитано 4545 раз)
Ramzay
Участник
**

Сказали спасибо: +14/-0
Offline Offline

Сообщений: 179


« : 31 мая 2017, 14:11:47 »

Почитал книжку про ActiveX. В книжке приведен пример внедрения на страницу игры крестики-нолики. Игра мне не нужна, поэтому внедрил просто форму. Получилось. Теперь нужно в приложение передать данные со страницы, в приложении я их обработаю, отправить данные на сервер и обновит страницу. Как это сделать?
Записан
Ramzay
Участник
**

Сказали спасибо: +14/-0
Offline Offline

Сообщений: 179


« Ответ #1 : 10 июня 2017, 10:26:07 »

Никто не ответил, поэтому расскажу о своих находках. Первоначально я внедрял на страницу форму так:
Код
    <OBJECT
 classid="clsid:6A8E93E6-BC39-4F45-945B-61C91BBB24D1"
 codebase="http://localhost/x1/X1.inf"
 width=330
 height=220
 align=center
 hspace=0
 vspace=0
   >
<param name="Caption" value="MyCaption">
   </OBJECT>
 
При этом объект в реестре на клиентской машине регистрируется сам. Через тег param пытался передать данные - ничего не вышло. Однако, если воспользоваться JavaScript-ом можно вызвать объект и передать ему параметр, предварительно его зарегистрировав или так как раньше или через regsvr32:
Код
<SCRIPT> 
var Ax=new ActiveXObject("X1.X");
Ax.Caption="Hello, World";      
alert(Ax.Caption);
</SCRIPT>
 
   
Работает!!! Правда, получается что объект внедренный через <object> и объект внедренный через new ActiveXObject два экземпляра одного объекта.   
Идем дальше. В проекте есть модуль ***_tlb.cpp и к нему что-типа формы.
В ней есть ветка "Интерфейс" (на картинка текущая). Так в этом интерфейсе есть то самое свойство Caption, которое мы изменяем  в скрипте. Более того, того в этот список можно добавить свой метод OpenSign и указать к нему параметры:

В методе можно делать все, что нужно, в том числе, создать и отобразить форму.

Вот итог моих скромных изысканий. Может кто знает, хотя это вопрос не по CBuilder, как получить доступ к объекту, созданного с помощью <object>, через JavaScript? 
Записан
Ramzay
Участник
**

Сказали спасибо: +14/-0
Offline Offline

Сообщений: 179


« Ответ #2 : 10 июня 2017, 11:00:51 »

Ура!! Я догадался.
Код
<HTML> 
<HEAD>
<TITLE>JavaScript</TITLE>
</head>
<body>
   <OBJECT id="AXObj"
 classid="clsid:6A8E93E6-BC39-4F45-945B-61C91BBB24D1"
 codebase="http://localhost/x1/X1.inf"
 width=330
 height=220
 align=center
 hspace=0
 vspace=0
   >
   </OBJECT>
 
<button onclick="Ax=document.getElementById('AXObj');">Pointer</button>
<button onclick="alert(Ax.Caption);Ax.Caption='Hello, World';alert(Ax.Caption);">Message</button>
</body>
</html>
 
Правильно поставленный вопрос - это уже половина ответа!
« Последнее редактирование: 10 июня 2017, 11:09:38 от Ramzay » Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в: