BCB 2010 调用 JavaScript

来源:互联网 发布:拒绝网络暴力论文 编辑:程序博客网 时间:2024/06/11 19:16
#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




0 0