我建立了一个activeform,但是不知道怎么让它可以跟js脚本交互.

chxuxu 2007-01-20 08:27:40
比如:控件一个属性改变时,如何让脚本检测到这样的改变并显示在ie上.
还有我怎么知道她的classid,
我试图注册没有成功,说什么找不到指定模块

昨天刚开始想做一个active,以前没用过bcb
高手能说得详细点最好了
...全文
434 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
chxuxu 2007-03-13
  • 打赏
  • 举报
回复
谢谢楼上的
xuqingxin 2007-02-26
  • 打赏
  • 举报
回复
但是控件一个属性改变时,如何让脚本检测到这样的改变并显示在ie上,这个我也不知道怎么实现。总的想法应该是空间的属性改变时激活一个事件,这个事件执行外面的脚本函数就可以了。
例如:
<SCRIPT LANGUAGE="JavaScript" FOR="控件ID" EVENT="OnClick()">
alert("Click");
</SCRIPT>
当鼠标点击ActiveForm时就会弹出对话框来,说明Click事件被捕获了。
不过目前我还不知道怎么添加自己的事件,以及怎么出发它。

有谁知道的话请告知一二,谢谢!
xuqingxin 2007-02-26
  • 打赏
  • 举报
回复
如何在cb里建立一个js脚本可以访问的属性或方法?

先讲方法。
1.在BCB里通过“View->Type Library”打开Project1.tlb
2.选择IActiveFormX接口,增加一个方法Test
3.在TActiveFormXImpl类中实现此方法
STDMETHODIMP TActiveFormXImpl::Test()
{
try
{
//输入你的代码
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActiveFormX);
}
return S_OK;
};
4.现在可以用脚本直接调用了var obj=document.getElementById("控件ID"); obj.test();

然后将属性。
1.在BCB里通过“View->Type Library”打开Project1.tlb
2.选择IActiveFormX接口,增加一个属性,比如X,注意,此时新增的属性会有一个ID,假如为127
3.在TActiveFormXImpl类中增加一个变量,如long FX;
4.写get/set函数
STDMETHODIMP TActiveFormXImpl::get_X(long* Value)
{
try
{
*Value = FX;
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActiveFormX);
}
return S_OK;
};


STDMETHODIMP TActiveFormXImpl::set_X(long Value)
{
try
{
FX = Value;
}
catch(Exception &e)
{
return Error(e.Message.c_str(), IID_IActiveFormX);
}
return S_OK;
};
5.让TActiveFormXImpl继承IPersistPropertyBagImpl摸板类
class ATL_NO_VTABLE TActiveFormXImpl:
VCLCONTROL_IMPL(TActiveFormXImpl, ActiveFormX, TActiveFormX, IActiveFormX, DIID_IActiveFormXEvents)
之后加上:",public IPersistPropertyBagImpl<TActiveFormXImpl>"
6.加入接口映射。
BEGIN_COM_MAP(TActiveFormXImpl)
VCL_CONTROL_COM_INTERFACE_ENTRIES(IActiveFormX)
//加入这条语句:
COM_INTERFACE_ENTRY_IMPL(IPersistPropertyBag)
END_COM_MAP()
7.加入属性映射
BEGIN_PROPERTY_MAP(TActiveFormXImpl)
// PROP_PAGE(CLSID_ActiveFormXPage)
//加入你的属性如
PROP_ENTRY("X",DISPID(127),CLSID_ActiveFormX)
END_PROPERTY_MAP()
注意:DISPID(127)中的127就是新增属性的ID

此时在脚本里写入<param name="X" value="10">就可以了
zxmuun 2007-02-05
  • 打赏
  • 举报
回复
可以实现的!
chxuxu 2007-01-26
  • 打赏
  • 举报
回复
还有谁???????????????????
chxuxu 2007-01-25
  • 打赏
  • 举报
回复
能在 active里 操作页面元素吗?比如给一个文本框赋值
jsyxo 2007-01-24
  • 打赏
  • 举报
回复
路过,帮顶
chxuxu 2007-01-23
  • 打赏
  • 举报
回复
如何在cb里建立一个 js脚本可以访问的属性或方法??????????????????
chxuxu 2007-01-22
  • 打赏
  • 举报
回复
在cb里面设置 一个属性 就可以用document.GetElementByID('控件id').属性 访问吗?
我不懂电脑 2007-01-22
  • 打赏
  • 举报
回复
http://www.mltang.com/article/ff571ca6-bda3-4872-8776-2f417f6b78ef.html
chxuxu 2007-01-22
  • 打赏
  • 举报
回复
怎么建立一个属性 让脚本可以访问?
chxuxu 2007-01-22
  • 打赏
  • 举报
回复
有人吗?调用activex里面的属性或方法时 出现以下错误:

对象不支持此属性或方法

代码:
var obj=document.getElementById("objShuaKa");
alert(obj.TestInt());

TestInt是cb里写的一个方法

chxuxu 2007-01-20
  • 打赏
  • 举报
回复
怎么没有人
chxuxu 2007-01-20
  • 打赏
  • 举报
回复
我现在classid都找到了而且浏览器提示安装,我也安装了
但是就是显示不出来控件
为什么?
chxuxu 2007-01-20
  • 打赏
  • 举报
回复
我发现不能显示的原因了,是因为我在控件里应用第三方 控件包

编译的时候没有一起编译进去吗?为什么无法显示,有没有办法>
ssqy 2007-01-20
  • 打赏
  • 举报
回复
《C++Builder数据库开发实用教程》这本教材里讲得很详细,
从这里查看这本书的详细信息及目录:
http://www.zzg.3126.net/ShowFile.asp?FID=13

703

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder ActiveX/COM/DCOM
社区管理员
  • ActiveX/COM/DCOM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧