国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Delphi > 正文

Delphi中ScriptControl的高級應(yīng)用(一)

2019-11-18 18:02:35
字體:
供稿:網(wǎng)友

DelphiScriptControl的高級應(yīng)用(一)

在我們的Windows系統(tǒng)里提供了一個叫ScriptControlOCX組件,我們可以用這個組件來實現(xiàn)腳本故事世界的精彩。

1、創(chuàng)建ScriptControl組件服務(wù)

首先,我們來看一下該組件都有哪些方法和屬性。如圖001,002。
001
002

 
接著,我們用Delphi創(chuàng)建組件服務(wù)。
   從圖001可知,該組件的PRogID為“MSScriptControl.ScriptControl.1。所以我們可以這樣創(chuàng)建組件:
Var
   sc : OleVariant;
begin
   sc := CreateOleObject('MSScriptControl.ScriptControl.1');
//使用Language屬性來設(shè)定該組件所使用的語言
//語言可以為:VbScript、javaScript(也可縮寫為JScript)
//相當(dāng)于在HTML里用的<Script Language=’JScript’>…</Scirpt>
   sc.Language :='Javascript';
end;

2、用Eval()來實現(xiàn)最簡單的數(shù)學(xué)表達(dá)式的計算

   Eval()是這個組件中用的最多的一個方法,也是經(jīng)常被大家用來計算數(shù)學(xué)表達(dá)式的一個方法。
   演示
      Function calc(const expression : String):Integer;
      Var
         sc : OleVariant;
      begin   
           //expresion := ‘100+5*3’;
           sc := CreateOleObject('MSScriptControl.ScriptControl.1');
           sc.Language :='JavaScript';
           result := StrtoInt( sc.eval(expression) ); 
      end;
      Sample:  115 := calc(‘100+5*3’);

3、實現(xiàn)漢字加密

JavaScript里有兩個函數(shù)EscapeUnescape,一般都是用作Html代碼里的對Script進(jìn)行加密時使用,目的是為了防止別人直接查看其腳本,以其亂碼形式顯示。
003
加密:
    Words := ‘這是一段用escape加密的漢字信息!’;
//Result:%u8FD9%u662F%u4E00%u6BB5%u7528escape%u52A0%u5BC6%u7684%u6C49%u5B57%u4FE1%u606F%uFF01
    Result := sc.Eval('escape('''+Words+''')');
解密:
    Result := sc.Eval('unescape('''+Words+''')');

4、利用JavaScript的正則表達(dá)式來驗證IP地址的規(guī)范

   這里我們需要用到ScriptControlAddCode方法來添加自定義方法。
   IP地址的規(guī)則是從0.0.0.0-255.255.255.255。
   以下就是驗證IP地址的代碼:
   var
   ipreg,script:String;
begin
   //IP正則式
   ipreg := '^([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/.'+
            '([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/.'+
            '([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])/.'+
            '([01]?[0-9][0-9]|[01]?[0-9]?[0-9]|2[0-4][0-9]|25[0-5])$';
   //JavaScript自定義函數(shù)        
   script:= 'function IpReg(str){'+
            'var re=new RegExp('''+ipreg+''');'+
           '  return re.test(str);}';
   sc.AddCode(script);
   //執(zhí)行函數(shù)
   if sc.Eval('IpReg('''+Edit1.Text+''')') then
      ShowMessage('正確的IP地址個格式!')
   else  ShowMessage('非法IP地址格式!') ;
end;
----------------------------JoeCom(juwuyi)2005-03-19

上一篇:Delphi7對XML的支持分析

下一篇:SQL在Delphi數(shù)據(jù)庫程序設(shè)計應(yīng)用淺談

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點

疑難解答

圖片精選

網(wǎng)友關(guān)注

主站蜘蛛池模板: 襄汾县| 志丹县| 阿巴嘎旗| 贡嘎县| 瓦房店市| 咸丰县| 岐山县| 安溪县| 沂水县| 松潘县| 东兰县| 太保市| 南陵县| 利津县| 咸丰县| 昌黎县| 景宁| 宕昌县| 溧水县| 东丰县| 茶陵县| 旬邑县| 巫溪县| 靖州| 盘锦市| 牟定县| 余庆县| 定边县| 横山县| 康马县| 大悟县| 当涂县| 孝义市| 凌海市| 仙游县| 九龙坡区| 蒲江县| 贺兰县| 桦川县| 贞丰县| 朔州市|