|
Web Application 開 發 利 器 - WebSnap!
第 十 一 章 、 ImageButtonProducer 應 用
在 WebSnap 的 範 例 中 , 有 幾 個 元 件 對 我 們 來 說 相 當 有 用 , 其 中 一 個 就 是 ImageButtonProducer , 她 可 以 讓 我 們 以 圖 形 按 紐 的 方 式 來 取 代 呆 板 的 預 設 按 紐 , 這 可 是 會 使 你 的 網 頁 看 起 來 更 有 價 值 多 了 , 當 然 ! 我 們 得 拿 些 許 的 效 率 去 換 , 要 使 用 她 之 前 , 我 們 得 先 把 她 裝 起 來 才 行 , 請 你 開 啟 以 下 這 個 Package:
Borland\Delphi6\Demos\WebSnap\ImgBtnProducer\DclImgBtnProducer

接 著 你 會 看 到 以 下 的 視 窗 :

最 後 按 下 Install 按 紐 就 可 以 安 裝 這 個 元 件 了 , 完 成 後 你 應 該 可 以 在 Component Palette 最 末 頁 裡 看 到 這 個 元 件 :

使 用 她 的 方 式 很 簡 單 , 請 開 啟 一 個 新 的 專 案 ( 由 這 一 章 開 始 , 我 們 將 使 用 另 一 個 範 例 程 式 ):

請 你 選 擇 AdapterPageProducer , 這 可 以 讓 我 們 很 方 便 的 製 作 出 圖 形 導 覽 按 紐 列 , 接 著 請 你 將 Template 選 項 改 成 Blank , 因 為 我 們 不 想 使 用 原 來 的 制 式 範 本 ( 她 很 醜 ...):

這 次 我 們 所 建 立 是 一 個 完 整 的 網 頁 , 當 然 我 們 得 加 入 所 有 網 頁 該 有 的 功 能 , 請 你 將 Components 內 所 有 的 元 件 都 勾 選 起 來 :

整 個 Application Page Module 看 起 來 就 像 下 圖 一 樣 :

接 著 我 們 搭 個 便 車 , 使 用 ApplicationAdapter 來 存 放 一 些 元 件 , 首 先 我 們 加 入 一 個 可 以 回 到 首 頁 的 Action:

接 著 在 Action.OnExecute 事 件 中 加 入 以 下 的 程 式 碼 :
uses WebReq, WebCntxt, WebFact, Variants,SiteComp;
… … … … … … … …
… … … … … … …
procedure THome.atHomeExecute(Sender: TObject; Params: TStrings);
begin
DispatchPageName(''''Home'''',Response,[dpPublished]);
end;
認 真 的 你 應 該 會 問 , 我 們 不 是 可 以 在 Visual Page Designer 中 以 設 定 PageName 的 方 式 來 導 向 嗎 ? 這 樣 就 不 用 寫 程 式 了 不 是 嗎 ? 呵 , 請 想 想 ! 如 果 我 們 有 10 個 網 頁 , 這 10 個 網 頁 中 都 需 要 這 個 按 紐 , 那 你 得 設 幾 次 呢 ? 寫 在 這 裡 只 需 設 一 次 就 可 以 了 , 很 方 便 ! 回 到 程 式 中 , 我 們 開 啟 Visual Page Designer 來 設 計 一 下 我 們 的 首 頁 , 目 前 我 們 的 目 的 只 是 要 加 入 一 個 導 覽 列 , 這 可 以 利 用 FieldGroup+CommandGroup 來 達 成 :

哦 ! 我 們 要 一 個 空 的 網 頁 , 不 要 這 個 Title Field , 請 將 AddDefaultFields 特 性 值 設 成 False , 讓 她 還 給 我 們 一 個 乾 淨 的 網 頁 , 接 著 請 在 AdapterForm1 中 再 加 入 一 個 AdapterCommandGroup 元 件 :

然 後 將 她 的 DisplayComponent 特 性 設 為 AdapterFieldGroup1 。

很 好 ! 那 個 呆 板 又 難 看 的 按 紐 出 現 了 :

嘿 ! 我 們 可 不 想 要 這 個 , 請 你 回 到 Page Module 中 , 將 ImageButtonProducer 元 件 放 入 Page Module 中 , 接 著 回 到 Visual Page Designer 在 AdapterCommandGroup1 右 方 按 右 鍵 , 將 我 們 的 Home Action 加 進 去 :

然 後 我 們 將 CmdHomeAction 的 ImageProducer 特 性 設 為 ImageButtonProducer1 就 完 成 了 。


當 然 我 們 不 可 能 這 樣 就 滿 足 了 , 首 先 她 的 顏 色 還 是 有 點 醜 , 我 們 可 以 調 整 ImageButtonProducer 中 的 特 性 值 來 美 化 她 :

嗯 ! 看 起 來 專 業 多 了 , 執 行 這 個 程 式 用 瀏 覽 器 來 看 看 吧 。

圖 形 並 沒 有 正 常 顯 示 ? 我 們 看 看 圖 形 的 連 接 出 了 什 麼 問 題 , 在 圖 形 上 按 右 鍵 選 擇 內 容 :

原 來 多 了 個 / , 看 來 是 ImageButtonProducer 元 件 的 問 題 , 我 們 回 到 DELPHI 中 , 重 新 調 整 一 下 ImageButtonProducer 的 特 性 值 , 首 先 我 們 必 須 在 這 個 專 案 的 目 錄 下 建 立 一 個 Images 目 錄 , 這 是 用 來 讓 ImageButtonProducer 元 件 產 生 圖 形 暫 存 檔 用 , 接 著 設 定 ImageButtonProducer.CacheDir 特 性 值 為 Images , 同 時 調 整 她 的 VirtualDir 特 性 值 為 Images 。

由 於 我 們 是 使 用 WebAppDebuger 模 式 , 因 此 我 們 還 必 須 調 整 她 的 Search Path 設 定 , 加 入 我 們 新 建 的 Images 目 錄 , 這 樣 她 才 能 正 確 的 找 到 圖 形 :

重 新 執 行 程 式 後 , 你 應 該 可 以 正 常 的 看 到 圖 形 按 紐 了 。

嘿 ! 不 只 是 漂 漂 亮 亮 的 圖 形 按 紐 , 還 有 ToolTip 顯 示 哦 , 雖 然 如 此 ! 整 體 看 起 來 還 是 單 調 了 些 , 我 們 加 上 個 Title Image 好 了 , 這 樣 看 起 來 較 美 觀 些 , 我 們 開 啟 ApplicationAdapter 的 Fields Designer 視 窗 , 加 入 一 個 AdapterImageField:

接 著 設 定 她 的 HREF 特 性 值 為 要 顯 示 的 圖 形 URL 。

最 後 開 啟 Visual Page Designer , 新 增 這 個 Field 到 AdapterFieldGroup1 中 。

預 設 會 出 現 編 輯 的 畫 面 , 我 們 將 她 的 ViewModule 設 定 為 vmDisplay 。

是 不 是 覺 得 TitleImage 這 段 字 很 礙 眼 ? 請 你 在 她 的 Caption 特 性 值 中 填 入 一 個 空 白 來 取 代 原 先 的 TitleImage 字 串 ( 目 前 一 定 要 有 一 個 字 元 才 行 ) 。

在 Designer 模 式 下 , 我 們 看 不 到 實 際 的 圖 形 顯 示 , 這 是 因 為 Designer 時 所 使 用 的 路 徑 是 絕 對 路 徑 , 而 我 們 所 設 的 是 URL 的 關 係 , 請 你 執 行 程 式 後 以 IE 來 瀏 覽 。

看 起 來 還 算 不 錯 , 至 少 以 一 個 只 寫 幾 行 程 式 的 Web Application 來 說 算 很 好 了 , 接 下 來 我 們 要 加 上 一 些 資 料 庫 的 功 能 , 首 先 請 你 新 增 一 個 WebDataModule 到 這 個 專 案 中 , 我 們 需 要 一 個 Table: BCDEMOS 中 的 Orders 資 料 表 。

使 用 BDE 開 發 Web Application 時 需 注 意 一 件 事 , 那 就 是 一 定 得 使 用 Session , 而 且 要 把 AutoSessionName 設 為 True , 否 則 無 法 適 用 於 Web 多 使 用 者 的 情 況 , 接 著 我 們 要 加 入 一 個 TQuery , 這 個 Query 的 作 用 是 取 出 Orders 中 的 所 有 Paymethod 欄 位 , 並 以 她 作 Group 後 取 出 Paymethod 列 表 , 我 們 會 在 下 面 用 到 她 。

[1] [2] [3] 下一页 [聊天工具]Gmail推出新功能:Web Clip__天极Yesky [聊天工具]Web MSN你玩了吗__天极Yesky [系统软件]Web Browser Express 概述 [系统软件]对Internet Explorer Web 控件做一点修改 [常用软件]小技巧:三步实现Web迅雷录制PPLive节目 [常用软件]天网防火墙:打开WEB和FTP服务 [VB.NET程序]使用VB.Net做一个配置web.config功能的WinForm(原… [VB.NET程序]vb.net控件、web service简述 [VB.NET程序]使用vbscript脚本调用web服务 [VB.NET程序]*** Web 存储系统窗体:窗体注册表 (new)***
|