BCB 2010 调用 JavaScript


#include <vcl.h>
#include <Variants.hpp>
#include <ComObj.hpp>	//

#pragma hdrstop

#include "Unit4.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TJavaScriptForm *JavaScriptForm;
//---------------------------------------------------------------------------
__fastcall TJavaScriptForm::TJavaScriptForm(TComponent* Owner)
	: TForm(Owner)
{
}
//---------------------------------------------------------------------------
String __fastcall TJavaScriptForm::RunJs(String JsCode, String JsVar)	//运行 JaveScr 代码
{
	//此函数 需要 ComObj 单元的支持
	//参数 Jscode 是要执行的 Js 代码; 参数 JsVar 是要返回的变量

	Variant script;	//使用OleVariant的话 会报错

	try {
		script = CreateOleObject("MSScriptControl.ScriptControl.1");		
		
		script.OlePropertySet("Language", "JavaScript");		
		script.OleFunction("ExecuteStatement", JsCode.c_str());
		
		return script.OleFunction("Eval", JsVar.c_str());
	} catch (...)
	{
		return "";
	}
}
//---------------------------------------------------------------------------
void __fastcall TJavaScriptForm::Button1Click(TObject *Sender)
{
	//
	String Val;
	String Ret;

	Ret = RunJs(Memo1->Text, "str");

	ShowMessage(Ret);
}
//---------------------------------------------------------------------------



在delphi 中 按照参照网站上的代码就可以实现,如果在bcb中直接写script.Language 就会报错。需要调用函数。这点没有delphi中直观。或许还有别的方法。

参考中有一个查看ocx 参数的截图,不清楚他是用什么软件看的,我只知道vc6 有个 OleView 可以看,望知道的人赐教。



运行截图:

   



 参考:


http://www.cnblogs.com/del/archive/2008/08/06/1261580.html
http://blog.sina.com.cn/s/blog_414cc36d0100q7ip.html
 http://school.cnd8.com/delphi/jiaocheng/7087.htm




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值