全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:2222
推到 Plurk!
推到 Facebook!

一個用來開發Delphi Web應用程式的套件組(Adv_WebFramework Alpha版)

 
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-11-12 19:31:26 IP:114.33.xxx.xxx 訂閱
To All: 
用過了WebSnap和intraweb....甚至是KbmWABD開發web程式,是否仍是力不從心?
現在開始介紹給眾多的Delphi Web開發者.....Adv_WebFramework Alpha for Delphi 7

它的原理是以TForm來作為設計網頁版面的平台,編排完成之後套件再將其轉為HTML格式;

使用方式
1.首先先安裝ADV_HTML基本控制項套件-->"Adv_HTMLCtrls_D7.dpk"(壓縮檔 alpha_Adv_HTMLCtrls_D7.rar )

2.開啟Delphi 7 ,開啟Adv_HTMLCtrls_D7.dpk,並且進行安裝!!

3.開啟Example程式(Alpha_JoshLinWebDev.rar),將其解壓縮到C:\ ,再以Delphi 7開啟JoshLinWebDev_App01.dpr 就可以執行了

4."EGISHttpSrvr.exe"是作者自製的簡易測試用的HttpServer,或者各位可以以IIS來測試!!

5.編譯完成後會產出JoshLinWebDev_App01.DLL ,為一個標準的ISAPI程式

再續....
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-11-12 21:36:58 IP:114.33.xxx.xxx 訂閱
開發時的畫面
開發版面
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-11-13 07:48:48 IP:114.33.xxx.xxx 訂閱

===================引 用 G01 文 章===================
To All:
用過了WebSnap和intraweb....甚至是KbmWABD開發web程式,是否仍是力不從心?
現在開始介紹給眾多的Delphi Web開發者.....Adv_WebFramework Alpha for Delphi 7

它的原理是以TForm來作為設計網頁版面的平台,編排完成之後套件再將其轉為HTML格式;

使用方式
1.首先先安裝ADV_HTML基本控制項套件-->"Adv_HTMLCtrls_D7.dpk"(壓縮檔 alpha_Adv_HTMLCtrls_D7.rar )

2.開啟Delphi 7 ,開啟Adv_HTMLCtrls_D7.dpk,並且進行安裝!!

3.開啟Example程式(Alpha_JoshLinWebDev.rar),將其解壓縮到C:\ ,再以Delphi 7開啟JoshLinWebDev_App01.dpr 就可以執行了

4."EGISHttpSrvr.exe"是作者自製的簡易測試用的HttpServer,或者各位可以以IIS來測試!!

5.編譯完成後會產出JoshLinWebDev_App01.DLL ,為一個標準的ISAPI程式

再續....

現在開始說明開發方式

1.首先先把主要的架構做好,New 一個標準的DLL程式架構
Delphi -->File-->New-->other-->DLL Wizard ,然後存檔
C:\ExampleWebApp\ExampleWebApp01.dpr

2.在這個程式的Uses段落原來只有 SysUtils,Classes而已,
現在加入,Windows,Dialogs,Forms,ISAPI,UAdv_ISAPI_Utils;
這幾個單元 (當然你必需先安裝好預設的元件並設定好Lib Path)

3.依照標準的ISAPI程式規範,我們在 Uses和DLL主程式
(也就是begin....end之前) ,加入下面的程式碼段
function HttpExtensionProc(var ECB:TEXTENSION_CONTROL_BLOCK):DWORD; stdcall;
begin
//-->告訴這個framework,我們的網頁控制主程式是哪一個
TheWebMainEvent := WebAppMain;
//-->呼叫FrameWork執行ISAPI程式
result := DoHttpExtensionProc('EMPTY-PARAMS',nil,ECB);
end;

Exports HttpExtensionProc;

4.步驟3.有一些事項必須說明
首先是這一行程式---------------->TheWebMainEvent := WebAppMain;
這個FrameWork控制網頁切換的方式是以事件的方式透過事件主程式來決定顯示的網頁
所以這行程式是告訴Framework,我們的主程式是哪一個;來完成整個網頁程式的連結

5.現在來介紹事件主程式TheWebMainEvent,它的函式規格如下:
procedure (Session:TAdv_WebSession;Request:TPub_Request;Response:TPub_Response);

Session --->指的是每次瀏覽器要求執行網頁時處理執行需求的主要物件
Request --->為Framework解析過,經由瀏覽器傳來的資訊
Response--->為我們要回覆給瀏覽器的內容

以上的物件內容與定義,我們會再有進一步的介紹,現在我們繼續撰寫這個網頁程式。

6.現在我們開始撰寫我們的網頁事件主程式--> "WebAppMain" (函式名稱可以自訂)
要注意的是,這個主程式請寫在剛才我們寫的 "HttpExtensionProc" 函式之前
這樣程式在進行(//-->告訴這個framework,我們的網頁控制主程式是哪一個
TheWebMainEvent := WebAppMain; 這一段連結的時候,才不會出錯!!)
下面是我們這次的主程式
procedure WebAppMain(Session:TAdv_WebSession;Request:TPub_Request;Response:TPub_Response);
begin
//暫時空白,我們要在此加入網頁顯示的程式碼!!
end;

7.接下來我們開始網頁版面的設計部份,首先在原來的DLL程式在加入一個TForm,存檔為UfMyMainHtmlPage
TForm的名稱改為 ---> fMyMainHtmlPage接著放入一個Adv_HTML_Page物件,這個物件是負責產生HTML文件
的主要核心,不可以省略!! 名稱為Adv_HTML_Page1,然後我們在上面放一個按鈕 Adv_HTML_Button1 ,然後
設定這個按鈕的EventType屬性為evtQueryString,然後存檔。

8.接著我們在DLL的主程式(也就是begin....end之間),加入下面這一行程式碼
fMyMainHtmlPage := TfMyMainHtmlPage.Create(Application);
這裡要說明的是,Create的參數一定要使用Application 不可以使用nil,這樣fMyMainHtmlPage
才可以在程式執行過後,正常的Free掉。

9.再來,我們在WebMainApp之中,加入下列的程式碼,然後存檔
Response.Write(fMyMainHtmlPage.Adv_HTML_Page1.CtrlToHtml);

10.接下來我們設定一下要執行測試的方式
在Delphi的Run選單-->Parameters-->Local 之中
設定三個選項
1.Host Application : C:\ExampleWebApp\EGISHttpSrvr.exe
(還記得Alpha_JoshLinWebDev.rar裡面有這個程式嗎?把它Copy過來)

2.Parameters: C:\ExampleWebApp\ExampleWebApp01.DLL

3.Working Directory: C:\ExampleWebApp

記得設定完之後要存檔!!

好了,這就是我們的第一個基於這個開發架構的ISAPI程式!! 開始編譯執行了

再續...
編輯記錄
G01 重新編輯於 2010-11-12 16:50:14, 註解 無‧
G01 重新編輯於 2010-11-12 16:52:36, 註解 無‧
G01 重新編輯於 2010-11-12 16:59:36, 註解 無‧
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#4 引用回覆 回覆 發表時間:2010-11-13 10:08:25 IP:112.105.xxx.xxx 訂閱
請問有BCB版本否?
------
Andy Chang
t27
中階會員


發表:34
回覆:95
積分:90
註冊:2002-06-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2010-11-14 12:20:10 IP:61.228.xxx.xxx 訂閱
是否有支delphi 2006(含)以上的版本?
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#6 引用回覆 回覆 發表時間:2010-11-15 06:35:38 IP:114.33.xxx.xxx 訂閱
關於BCB的部份已經在發展中,將會有相關的版本
G01
高階會員


發表:249
回覆:379
積分:215
註冊:2002-05-21

發送簡訊給我
#7 引用回覆 回覆 發表時間:2010-11-15 06:57:08 IP:114.33.xxx.xxx 訂閱
關於這個套件的正式網站即將成立,另外For各版本的套件也將陸續推出。
系統時間:2024-11-23 3:34:54
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!