指令碼宿主程式

2021-09-07 22:23:41 字數 1603 閱讀 4638

宿主的功用:

裝載.dfm檔案動態生成窗體;

註冊動態生成窗體中的類,物件,屬性,方法,函式,從而讓指令碼引擎能夠操作它們。

下面以tms scripter studio為例:

unit umain;

inte***ce

uses

windows, messages, sysutils, variants, classes, graphics, controls, forms,

dialogs, menus, atscript, atpascal;

type

tformmain = class(tform)

mainmenu1: tmainmenu;

scripter: tatpascalscripter;

m1: tmenuitem;

n11: tmenuitem;

n21: tmenuitem;

procedure n11click(sender: tobject);

procedure n21click(sender: tobject);

private

procedure loadscript(sender: tcomponent; const dfmfile, pscfile,

initproc: string);

// params: sender--宿主窗體  dfmfile--介面指令碼檔案  pscfile--業務指令碼  initproc--呼叫指令碼的初始化方法

public

end;

varformmain: tformmain;

implementation

uses uclass, unit1, unit2;

procedure tformmain.loadscript(sender: tcomponent; const dfmfile, pscfile,

initproc: string);

begin

uclass.loadfromdfm(dfmfile, sender);          // 裝載介面

scripter.addcomponents(sender);               // 讓指令碼認識窗體中的物件

uclass.pianlicomps(sender, scripter);

scripter.sourcecode.clear;

scripter.sourcecode.loadfromfile(pscfile);  // 裝載業務

scripter.executesubroutine(initproc);       // 呼叫指令碼的初始化方法

end;

procedure tformmain.n11click(sender: tobject);

begin

loadscript(form1, '1.dfm', '1.psc', 'init');

end;

procedure tformmain.n21click(sender: tobject);

begin

loadscript(form2, '2.dfm', '2.psc', 'init');

end;

end.

堅持學習WF 6 開發可復用的宿主程式

我們之前寫工作流宿主程式一般都是直接寫在program.cs檔案裡,這樣復用性比較差。我們就簡單的寫兩個類,這兩個類主要實現的是對workflowinstance和workflowruntime的封裝。我們以後的例子都會使用這兩個類。serializable public class private...

WPF 主程式合併程式集

但ilmerge不支援wpf程式,下面二步操作即可實現ilmerge一樣的功能,並且是整合在vs開發環境的中。1.將wpf主程式 exe工程 解除安裝,在編輯工程檔案,在xml最後部分新增上下面一段配置 importproject msbuildtoolspath microsoft.csharp....

ollydbg找到主程式入口

通常用ollydbg開啟乙個程式之後,並沒有直接跳到程式主函式入口位址,而是在進行一些初始化工作,這個是需要跳過的。如果上述都不太熟悉的話可以中規中矩的進行單步執行 1.開始之後便一直f8,直到步過下面這個函式 ff15 38804000 call dword ptr ds kernel32.get...