Web Application 開 發 利 器 - WebSnap(八)

2008-04-10 02:58:01来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折

Web Application 開 發 利 器 - WebSnap!

第 捌 章 、 LocateFileService 元 件

LocateFileService 的 用 途 相 當 簡 單 , 當 Page Module 要 取 得 Template 時 , 她 會 先 取 得 LocateFileService 的 介 面 再 送 出 檔 案 要 求 給 她 , 這 個 檔 案 要 求 有 兩 種 , 一 種 是 你 在 HTML Template 中 使 用 了 以 下 的 命 令 碼 :

<!-- #include file="..\include\StdDemoHeader.html" -->

另 一 種 是 在 Page Module 要 取 得 HTML Template 時 , 這 有 許 多 用 途 , 有 些 時 候 我 們 希 望 將 HTML Template 隱 藏 起 來 , 例 如 隱 藏 在 其 它 的 目 錄 中 , 來 訪 者 就 不 能 夠 以 URL 直 接 取 得 我 們 的 Template File , 或 是 直 接 將 Template File 放 在 程 式 的 Resource 區 段 , 執 行 時 動 態 取 出 , 在 Demo/Websnap 中 就 有 這 樣 的 範 例 , 甚 至 有 時 我 們 想 將 Template 寫 死 在 程 式 中 , 這 些 時 候 我 們 可 以 利 用 LocateFileService 的 三 個 事 件 來 處 理 :

8-1 LocateFileService 的 事 件

OnFindTemplateFile

在 範 例 中 有 一 個 DemoLocateService PageModule , 她 的 HTML Template File 是 uDemoLocateService.html , 我 希 望 將 她 放 在 使 用 者 無 法 讀 取 的 目 錄 中 :

procedure THome.LocateFileService1FindTemplateFile(ASender: TObject;

AComponent: TComponent; const AFileName: String; var AFoundFile: String;

var AHandled: Boolean);

var

I:Integer;

fs:TFileStream;

FN: array[0..255] of char;

AppPath:string;

begin

GetModuleFileName(hInstance,FN,SizeOf(FN));

AppPath:=ExtractFileDir(FN);

if AFileName = ''''uDemoLocateService.html'''' then

AFoundFile:=AppPath ''''\Template\uDemoLocateService.html'''';

end;

上 面 的 程 式 碼 促 使 Page Module 使 用 \Template\uDemoLocateService.html 這 個 檔 案 , 而 不 是 原 來 的 uDemoLocateService.html 。

OnFindIncludeFile

這 個 事 件 會 在 你 的 HTML Template 中 含 有 include file 命 令 時 被 觸 發 , 處 理 方 式 與 上 面 的 FindTemplateFile 相 同 。

OnFindStream

OnFindTemplateFile 觸 發 時 機 相 同 , 不 過 我 們 可 以 用 Stream 來 代 替 實 際 檔 案 , 這 在 我 們 將

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:从另一个考虑来看代码的风格

下一篇:Web Application 開 發 利 器 - WebSnap(九)