執行動態delphi指令碼

來源:互聯網
上載者:User

如何在程式中執行動態產生的Delphi代碼 

經常發現有人提這類問題,或者提問內容最後歸結成這種問題 

前些陣子有位高手寫了一個“執行動態產生的程式碼”,這是真正的高手,我沒那種功力,我只會投機取巧。 

這裡提供三種方法,都是藉助第三方的組件來實現的。 

1、MicroSoft Windows Script Control(http://www.microsoft.com/downloads/details.aspx?FamilyID=d7e31492-2595-49e6-8c02-1426fec693ac&DisplayLang=en) 
   這是微軟的東西,OCX的,我對OCX的東西一向沒什麼好感,:)但總算是解決問題的一個方法。 
   到以上地址下載回來sct10en.exe,這是個安裝程式,安裝完成以後,在安裝目錄裡有一個msscript.ocx,就是它了。 
   在Delphi中Import OCX...匯入安裝,在表單上添加一個TScriptControl類的執行個體。 
   設定好它的Scriptanguage屬性:VBScript,JScript...IE認識的它都認識,沒有Object Pascal?不要急,好戲總是放在後頭嘛... 
   以VbScript為例: 
     運行指令碼:ScriptControl1.ExecuteStatement('msgbox("Runing....")'); 
     計算公式:ShowMessage(scriptcontrol1.Eval('1+1')); 
   
   優點:皇家的東西,相信它,沒錯的 
   缺點:發布程式帶個OCX,只能支援微軟的Script 

2、Dream Collection中的DCScripter(ftp://202.117.210.28/file/dream4.rar) 
   安裝好以後在控制項面板DreamCompany裡面有一個向右的黑色箭頭,就是它了。 
   以VbScript為例: 
   運行指令碼:DCScripter1.Script.Add('msgbox("Script Runing...")'); 
             DCScripter1.Run; 
   計算公式:ShowMessage(DCScripter1.Evaluate('1+1')); 

   優點:VCL的,除支援微軟的指令碼以外,還支援Perl,Python 
   缺點:還是不支援Object Pascal...(別打,就來了...) 

3、DelphiWebScriptII(http://prdownloads.sourceforge.net/dws/dws2src11.zip) 
   這個東西好啊,功能超強,太強了,太強了,真強... 
   安裝完成以後,將TDelphiWebScriptII,Tdws2GUIFunctions加入表單,引用dws2Exprs單元。 
   運行指令碼: 
   var 
     prg: TProgram; 
   begin 
     prg := DelphiWebScriptII1.Compile('ShowMessage(''hi'');'); 
     prg.Execute; 
   end; 
   這個東西是用稍微複雜一點,不過看看Demo吧,接下來的造化就看你自己的了。 

   優點:VCL的,功能超強,支援Object Pascal... 
   缺點:只支援Object Pascal... 

以上三個各有憂缺點,大家可能比較欣賞DelphiWebScript的功能,但是我覺得如果是給使用者使用的話,還是Dream Scripter比較好,畢竟VbScript等比較容易為使用者所接受。其實現在很多網管等都很習慣於利用系統提供的COM對象,使用純指令碼進行編程。很方便的。 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.