相關資料:https://www.cnblogs.com/linyawen/archive/2011/10/01/2196950.htmlhtml
如何在程序中執行動態生成的Delphi代碼
常常發現有人提這類問題,或者提問內容最後歸結成這種問題
前些陣子有位高手寫了一個「執行動態生成的代碼」,這是真正的高手,我沒那種功力,我只會投機取巧。
這裏提供三種方法,都是藉助第三方的組件來實現的。
一、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
二、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...(別打,就來了...)
三、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對象,使用純腳本進行編程。很方便的。 編程