日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

主题:的中间层框架 第一节

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 主题:的中间层框架 第一节 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

主題:<插件式>的中間層框架
時間:2004-12-31 15:00
主講:D10.天地弦

2004-12-31 14:56:15 /:>D10.天地弦(185511468)
開始吧,我們?

2004-12-31 14:57:22 /:>D10.天地弦(185511468)
請大家先看圖
http://www.jqk.net.cn/dkFrameworkWeb/dkFramework_files/dkFramework_frames.htm
用IE打開
昨天發現用QQ的不行

<圖一>框架運作圖


2004-12-31 15:04:49 /:>D10.天地弦(185511468)
上面就是中間層的框架運作圖

2004-12-31 15:07:10 /:>D10.天地弦(185511468)
然后打開客戶端代碼

2004-12-31 15:09:21 /:>D10.天地弦(185511468)
看看客戶端的代碼

2004-12-31 15:09:38 A1.Aleyn.wu(45198124)
http://www.e-midas.cn/eds/dk.rar
?

2004-12-31 15:10:02 A1.Aleyn.wu(45198124)
D10的框架圖,大家下載來用IE看就可以了。

2004-12-31 15:10:05 /:>D10.天地弦(185511468)
好的,大家把老大那個down一下

2004-12-31 15:10:29 /:>D10.天地弦(185511468)
里面解壓出來,是web頁面,大家在本機上看

2004-12-31 15:11:43 /:>D10.天地弦(185511468)
好了,我們按照從中間層獲取帳套來講講



?

<圖二>?從中間層獲取一個帳套數據



2004-12-31 15:12:14 /:>D10.天地弦(185511468)
大家有沒有看到
procedure TFMainForm.BtnGetAccountClick(Sender: TObject);
var
? vData, Msg: OleVariant;
begin
? inherited;
? AddParamToData(vData, 'Type', amtGet);

? if CLDataModule.SocketConnection.AppServer.ProcessData(miAccountMgr, aiAccountMgr, vData, Msg) then
? begin
??? CdsAccount.Data := vData;
??? CdsAccount.Active := true;
? end; //
end;

2004-12-31 15:12:24 /:>D10.天地弦(185511468)
這一段

2004-12-31 15:12:40 /:>D10.天地弦(185511468)
是獲取帳套按鈕的事件代碼

2004-12-31 15:13:24 /:>D10.天地弦(185511468)
ProcessData這個函數是中間層提供的接口

2004-12-31 15:13:25 D3天之痕若虹(86278566)
調用Server端的ProcessData過程

2004-12-31 15:13:43 /:>D10.天地弦(185511468)
是調用Server端的ProcessData

2004-12-31 15:14:06 /:>D10.天地弦(185511468)
再請大家打開一個Delphi打開Middlelayer.png

2004-12-31 15:14:25 /:>D10.天地弦(185511468)
\MiddleLayer\MiddleLayer.bpg

2004-12-31 15:15:07 /:>D10.天地弦(185511468)
如果可以看到web的看看Data數據流程圖




<圖三>參數Data流向圖



2004-12-31 15:16:10 /:>D10.天地弦(185511468)
Data里面客戶端是放參數的

2004-12-31 15:16:29 /:>D10.天地弦(185511468)
到模塊里處理后,返回的是客戶端要的數據

2004-12-31 15:17:21 /:>D10.天地弦(185511468)
我們現在看到中間層的代碼

2004-12-31 15:17:43 /:>D10.天地弦(185511468)
function TMLRDataModule.ProcessData(ModuleIndex, ActionIndex: Integer;
? var Data, Msg: OleVariant): WordBool;
begin
? try
??? result := TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg) = S_OK;
??? result := true;
? except
??? result := false;??? //
? end;
end;

2004-12-31 15:18:08 /:>D10.天地弦(185511468)
大家有看到不

2004-12-31 15:18:11 /:>D10.天地弦(185511468)
這句是在Server.工程里的
75行
unit uMLRDataModule;

2004-12-31 15:19:21 /:>D10.天地弦(185511468)
所有客戶端請求處理的數據都通過該函數進行處理

2004-12-31 15:19:52 西門吹風㊣(48542332)
大家看明白這句嗎?
TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg) = S_OK;

2004-12-31 15:20:02 D3天之痕若虹(86278566)
下載剛那文件呀
http://www.e-midas.cn/eds/dk.rar

2004-12-31 15:20:15 hellfire(149902352)
沒看懂

2004-12-31 15:20:46 /:>D10.天地弦(185511468)
大家,先停一下

2004-12-31 15:20:50 乾隆(7891551)
我也沒看懂

2004-12-31 15:21:00 西門吹風㊣(48542332)
TFrameworkServices 是個接口

2004-12-31 15:21:02 /:>D10.天地弦(185511468)
那句我等一下會講的

2004-12-31 15:21:21 /:>D10.天地弦(185511468)
我先想了解一下大家的思路

2004-12-31 15:21:35 /:>D10.天地弦(185511468)
處理數據的一個思路

2004-12-31 15:21:43 C03.MUSIC(281361369)
這個跟老大的思路是一樣的吧?

2004-12-31 15:21:44 西門吹風㊣(48542332)
對,估計大家一下很難跟

2004-12-31 15:21:44 D3天之痕若虹(86278566)
聽。。。

2004-12-31 15:21:47 /:>D10.天地弦(185511468)
然后介紹一下我的思路

2004-12-31 15:22:16 /:>D10.天地弦(185511468)
我先說我的思路吧

2004-12-31 15:22:38 /:>D10.天地弦(185511468)
客戶層==>中間層

2004-12-31 15:23:14 西門吹風㊣(48542332)
先聽一下吧


2004-12-31 15:23:17 /:>D10.天地弦(185511468)
首先我們想一想客戶層與中間層是不是需要很多的接口,來實現很多種服務呢

2004-12-31 15:23:29 乾隆(7891551)
是的

2004-12-31 15:23:35 /:>D10.天地弦(185511468)
客戶層==>中間層
首先我們想一想客戶層與中間層是不是需要很多的接口,來實現很多種服務呢

2004-12-31 15:23:45 hellfire(149902352)
Yes

2004-12-31 15:23:45?? 冷俊(76437853)

2004-12-31 15:23:52 西門吹風㊣(48542332)

2004-12-31 15:23:52 00.bit(10910310)
YS

2004-12-31 15:24:05 神王(375867424)
Y

2004-12-31 15:24:24 湖北人(364076660)
是啊

2004-12-31 15:24:26 /:>D10.天地弦(185511468)
計算機只認識0,1我想大家都知道吧

2004-12-31 15:24:42 C03.MUSIC(281361369)
這一句應該是對接口進行統一封裝吧

2004-12-31 15:24:46 乾隆(7891551)
是的

2004-12-31 15:24:55 /:>D10.天地弦(185511468)
0,1,兩個東西,就可以實現各種服務了,

2004-12-31 15:25:18 hellfire(149902352)
go on

2004-12-31 15:25:28 A3.武稀松(42088303)
組合啊

2004-12-31 15:25:42 /:>D10.天地弦(185511468)
所以我想沒有必要,中間層和客戶層,通過很多線路聯起來

2004-12-31 15:25:50 A3.武稀松(42088303)
嚴重同意

2004-12-31 15:25:52 乾隆(7891551)
你是說客戶端調用中間層的過程和函數,中間層靠返回的0,1來判斷執行還是不執行?

2004-12-31 15:26:08 西門吹風㊣(48542332)

2004-12-31 15:26:23 /:>D10.天地弦(185511468)
我的意思是,中間層對客戶層,只要少量的接口,就可以實現客戶服務

2004-12-31 15:26:58 神王(375867424)
如果業務量大的話,有如何

2004-12-31 15:27:11 /:>D10.天地弦(185511468)
我來打個如方,以前在學校,上層開會的時候只把所有的人招集起來開會,還是每個班派一個代表去就行了

2004-12-31 15:27:14 乾隆(7891551)
D10:這里的接口可以理解成過程和函數嗎?

2004-12-31 15:27:20 D3天之痕若虹(86278566)
先聽聽,D10的思路吧

2004-12-31 15:27:30 C03.MUSIC(281361369)
是每個班派一個代表吧

2004-12-31 15:27:41 /:>D10.天地弦(185511468)
是的,每個班派一個代表

2004-12-31 15:28:05 神王(375867424)
這要看情況

2004-12-31 15:28:10 hellfire(149902352)
上層開會肯定是派一個代表吧

2004-12-31 15:28:23 /:>D10.天地弦(185511468)
客戶層和中間層也一樣只有需要少量接口,

2004-12-31 15:28:34 神王(375867424)
繼續說,

2004-12-31 15:28:38 西門吹風㊣(48542332)
代表就是我們的接口

2004-12-31 15:28:39 乾隆(7891551)
哦,在聽

2004-12-31 15:28:44 /:>D10.天地弦(185511468)
想想客戶層和中間層的通訊,大部分是怎么樣的

2004-12-31 15:28:47 C03.MUSIC(281361369)
就是說應該為中間層也進行分層管理?

2004-12-31 15:28:56 乾隆(7891551)
這里的接口可以理解成過程和函數嗎??

2004-12-31 15:29:15 初六無云(359062004)
接口就是協議,過程,函數也是協議

2004-12-31 15:29:17 D3天之痕若虹(86278566)
也可以

2004-12-31 15:29:48 /:>D10.天地弦(185511468)
是不是傳遞參數信息到中間層,中間層根據這些參數信息,然后,決定要做什么事,然后需要返回數據就返回數據到客戶層

2004-12-31 15:29:59 乾隆(7891551)
講通俗點嘛,DELPHI都準備好協議了直接說是函數或過程吧

2004-12-31 15:30:03 神王(375867424)
是的

2004-12-31 15:30:13?? 冷俊(76437853)

2004-12-31 15:30:30 /:>D10.天地弦(185511468)
中間層根據這些參數信息,然后,決定要做什么事,然后需要返回數據就返回數據到客戶層?

2004-12-31 15:30:58 /:>D10.天地弦(185511468)
大伙先跟著我的思路想一想

2004-12-31 15:31:10 神王(375867424)
明白

2004-12-31 15:31:21 乾隆(7891551)
想通了,這里好理解

2004-12-31 15:31:23 西門吹風㊣(48542332)

2004-12-31 15:31:43 C9. 隨風飄(87450854)
繼續??

2004-12-31 15:31:47 D3天之痕若虹(86278566)
有些像設計模式的思想....

2004-12-31 15:31:47?? 冷俊(76437853)
我還行?

2004-12-31 15:31:57 乾隆(7891551)
講講如何具體處理客戶發出請求吧

2004-12-31 15:31:58 A3.武稀松(42088303)
D10是說定義盡量少的接口方法,通過參數控制中間層的功能調用?

2004-12-31 15:32:05 /:>D10.天地弦(185511468)
像Windows消息一樣,Windows只負責發送各種消息到應用程序,然后,應用程序根據消息的代碼做出反應

2004-12-31 15:32:16 西門吹風㊣(48542332)
對,D10就是用到設計模式

2004-12-31 15:32:26 /:>D10.天地弦(185511468)
42088303(A3.武稀松) 15:31:58
D10是說定義盡量少的接口方法,通過參數控制中間層的功能調用? ==》3哥,是的

2004-12-31 15:32:51 hellfire(149902352)
明白

2004-12-31 15:33:09 D3天之痕若虹(86278566)
其實D10的思路就是。。
在服務端,再分塊管理。。。

2004-12-31 15:33:27 C03.MUSIC(281361369)
A1的那個程序也是這樣

2004-12-31 15:33:34 /:>D10.天地弦(185511468)
我們中間層都通過
?? function ProcessData(ModuleIndex, ActionIndex: Integer; var Data,
????? Msg: OleVariant): WordBool; safecall;
來路客戶端打交道

2004-12-31 15:33:47 /:>D10.天地弦(185511468)
對的,其實就是A1的三層了接口了

2004-12-31 15:33:59 乾隆(7891551)
哦,客戶端就一個函數啊

2004-12-31 15:34:22 神王(375867424)
只是傳與接

2004-12-31 15:34:28 /:>D10.天地弦(185511468)
大家都明白嗎?

2004-12-31 15:34:30 C9. 隨風飄(87450854)
就象所謂的瘦客戶端?

2004-12-31 15:34:38 西門吹風㊣(48542332)
明白

2004-12-31 15:34:46 C03.MUSIC(281361369)
其實中間層就提供給客戶端一個或幾個接口,具體實現是經過封裝了的,這些對客戶沒有用處,對否?

2004-12-31 15:34:47 D3天之痕若虹(86278566)
是的,就是說只要接口統一。。

2004-12-31 15:34:48 神王(375867424)
明白

2004-12-31 15:35:03 B1.斜陽(249208513)
我倒是覺得這么出來客戶端和中間層的調用,有點過于簡單。先聽你講課吧,完事再討論這個問題

2004-12-31 15:35:17 乾隆(7891551)
說錯了吧,是中間層就一個函數PROcessData于客戶打交道吧

2004-12-31 15:35:32 /:>D10.天地弦(185511468)
??? function ProcessData(ModuleIndex, ActionIndex: Integer; var Data,
????? Msg: OleVariant): WordBool; safecall;
Data 參數(

2004-12-31 15:36:11 /:>D10.天地弦(185511468)
客戶端發送請求的時候中間層收到請求可以從Data這個參數里取參數

2004-12-31 15:36:13 乾隆(7891551)
D10:這個函數好復雜啊,給講講啥意思

2004-12-31 15:36:20 /:>D10.天地弦(185511468)
各種參數

2004-12-31 15:36:32 A1.Aleyn.wu(45198124)
我們中間層都通過
??? function ProcessData(ModuleIndex, ActionIndex: Integer; var Data,
????? Msg: OleVariant): WordBool; safecall;?? <-怎么看都有點熟悉。。。。。。[:D]

2004-12-31 15:36:48 /:>D10.天地弦(185511468)
ModuleIndex是指定要通過那個模塊來處理這個信息,

2004-12-31 15:37:02 /:>D10.天地弦(185511468)
呵呵,是你發明的東西了,當然熟

2004-12-31 15:37:07 /:>D10.天地弦(185511468)
我只是再炒一下

2004-12-31 15:37:17 西門吹風㊣(48542332)
活學活用

2004-12-31 15:37:19 /:>D10.天地弦(185511468)
ActionIndex是要執行的動作了

2004-12-31 15:37:31 /:>D10.天地弦(185511468)
是一個Integer類型

2004-12-31 15:37:37 A1.Aleyn.wu(45198124)
ActionIndex可以不用在參數里。

2004-12-31 15:37:39 /:>D10.天地弦(185511468)
ActionIndex =1的時候做什么

2004-12-31 15:37:51 /:>D10.天地弦(185511468)
=2的時候做什么

2004-12-31 15:38:00 /:>D10.天地弦(185511468)
這樣協議就是大家去規定了

2004-12-31 15:38:01 初六無云(359062004)
提個意見,把這個函數的參數用一個類來表示怎樣?

2004-12-31 15:38:07 神王(375867424)
利用消息傳遞機制

2004-12-31 15:38:18 A3.武稀松(42088303)
建議客戶端可以在有一個包裝,可以定義各種方法.在方法里面調用ProcessData.
就像Windows既提供消息,也提供方便調用的API.

2004-12-31 15:38:19 A1.Aleyn.wu(45198124)
函數一般在三個參數以內比較好,你這個函數有改進一下。

2004-12-31 15:38:33 /:>D10.天地弦(185511468)

2004-12-31 15:38:38 神王(375867424)
同意A3

2004-12-31 15:38:51 /:>D10.天地弦(185511468)
function TMLRDataModule.ProcessData(ModuleIndex, ActionIndex: Integer;
? var Data, Msg: OleVariant): WordBool;
begin
? try
??? result := TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg) = S_OK;
??? result := true;
? except
??? result := false;??? //
? end;
end;

2004-12-31 15:38:53 A3.武稀松(42088303)
D10認為如何

2004-12-31 15:39:30 乾隆(7891551)
接著講這個函數啊,WordBool什么意思啊[:$]

2004-12-31 15:39:31 /:>D10.天地弦(185511468)
3哥,好啊

2004-12-31 15:39:40 /:>D10.天地弦(185511468)
我功力還不夠

2004-12-31 15:39:49 西門吹風㊣(48542332)
WordBool 布爾型

2004-12-31 15:39:52 A3.武稀松(42088303)
大家在討論么

2004-12-31 15:39:56 /:>D10.天地弦(185511468)
不知道大家有沒有跟上

2004-12-31 15:39:56 神王(375867424)
大哥先接著說

2004-12-31 15:39:57 A1.Aleyn.wu(45198124)
42088303(A3.武稀松) 15:38:18
建議客戶端可以在有一個包裝,可以定義各種方法.在方法里面調用ProcessData.
就像Windows既提供消息,也提供方便調用的API. <-如果D10是繼承我的做法,那就是A3你所說的了。

2004-12-31 15:40:09 B1.斜陽(249208513)
早在A1給出他的代碼的時候,我就覺得客戶端和中間層的模塊綁的有點過于緊密,呵呵,
還沒形成一個好的思路跟A1說,這又有一個人用上這個方法了[:D]

2004-12-31 15:40:36 /:>D10.天地弦(185511468)
大家有沒有跟上?
?

2004-12-31 15:40:44 D3天之痕若虹(86278566)
在聽。。

2004-12-31 15:40:44 初六無云(359062004)
傳一個 command 比較好,還可以自己檢驗

2004-12-31 15:40:58 /:>D10.天地弦(185511468)
function TMLRDataModule.ProcessData(ModuleIndex, ActionIndex: Integer;
? var Data, Msg: OleVariant): WordBool;
begin
? try
??? result := TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg) = S_OK;
??? result := true;
? except
??? result := false;??? //
? end;
end;?

2004-12-31 15:41:08 /:>D10.天地弦(185511468)
好我們現在來看這個函數

2004-12-31 15:41:50 /:>D10.天地弦(185511468)
這里就是中間層處理的東東了

2004-12-31 15:41:52 C9. 隨風飄(87450854)
可惜? 還能看到A1的代碼

2004-12-31 15:41:59 /:>D10.天地弦(185511468)
兄弟,別頂

2004-12-31 15:42:03 乾隆(7891551)
水平高的人你們為什么不象D10樣我偶講課,呵呵

2004-12-31 15:42:13 A3.武稀松(42088303)
不說別的.每種模式都有許多種分支.
D10 繼續

2004-12-31 15:42:34 神王(375867424)
大哥,繼承

2004-12-31 15:42:44 乾隆(7891551)
接著講這個函數吧,還是看不懂

2004-12-31 15:42:49 /:>D10.天地弦(185511468)
中間層收到信息后,要做的事就是要找到對應的模塊來處理信息

2004-12-31 15:43:05 乾隆(7891551)
是,這個知道

2004-12-31 15:43:06 D3天之痕若虹(86278566)
ID 如何同步呢?

2004-12-31 15:43:31 C9. 隨風飄(87450854)
然后通過模塊處理后的 DATA 再返回?

2004-12-31 15:43:33 乾隆(7891551)
ID啥意思,

2004-12-31 15:43:50 D3天之痕若虹(86278566)
ItSelf[ID]

2004-12-31 15:43:51 /:>D10.天地弦(185511468)
現在我們來看中間層是如果來做要做的事的

2004-12-31 15:44:33 /:>D10.天地弦(185511468)
現在,我們來看看,這里和A1走的可能不太一樣

2004-12-31 15:44:36 A1.Aleyn.wu(45198124)
D10繼續。

2004-12-31 15:44:55 乾隆(7891551)

2004-12-31 15:45:19 /:>D10.天地弦(185511468)
這里我講一下中間層和模塊之間的幾個接口

2004-12-31 15:45:33 西門吹風㊣(48542332)
unit MLInterface;?


2004-12-31 15:46:30 /:>D10.天地弦(185511468)
? IModelInfo = interface //模塊基本信息接口
??? procedure GetModelInfo(var ModelInfo: OleVariant); stdcall;
??? function GetModelInfoData(): OleVariant; stdcall;
??? function SetModelConfig(FixDataBase: Boolean; ConnString: WideString): HResult; stdcall;
? end;

? IModelService = interface //模塊操作接口
??? function ProcessData(OwnId: Cardinal; ActionIndex: Integer; var Data, Msg: OleVariant): HResult; stdcall;

??? //主程序調用此函數關閉模塊操作
??? function CloseModel(): HResult; stdcall;
? end;

? IFrameworkService = interface //框架提供接口
??? function GetID(): Cardinal; stdcall;
??? function GetModelService(ModelIndex: Integer): IModelService; stdcall;
??? function GetFrameWorkInfo(ActionIndex: Integer; var Data, Msg: OleVariant): HResult; stdcall;
??? property ModelService[ModelIndex: Integer]: IModelService read GetModelService; default;
? end;

? IFrameworkServices = interface //框架集接口(通過該接口查得到框架服務接口)
??? function GetFrameworkService(_id: Integer): IFrameworkService; stdcall;
??? property FrameworkServices[_id: Integer]: IFrameworkService read GetFrameworkService; default;
? end;
?

2004-12-31 15:47:02 hellfire(149902352)
一個一個來吧!貼得好像有點多[:D]

2004-12-31 15:47:09 /:>D10.天地弦(185511468)
這是中間層的幾個接口

2004-12-31 15:47:20 /:>D10.天地弦(185511468)
好的

? IModelInfo = interface //模塊基本信息接口
??? procedure GetModelInfo(var ModelInfo: OleVariant); stdcall;
??? function GetModelInfoData(): OleVariant; stdcall;
??? function SetModelConfig(FixDataBase: Boolean; ConnString: WideString): HResult; stdcall;
? end;

2004-12-31 15:47:34 /:>D10.天地弦(185511468)
其實這里我多寫了一個函數
? IModelInfo = interface //模塊基本信息接口
??? function GetModelInfoData(): OleVariant; stdcall;
??? function SetModelConfig(FixDataBase: Boolean; ConnString: WideString): HResult; stdcall;
? end;

2004-12-31 15:48:30 /:>D10.天地弦(185511468)
這個接口就這樣就可以的

2004-12-31 15:48:30 西門吹風㊣(48542332)
獲取模塊信息

2004-12-31 15:48:48 乾隆(7891551)
這是在定義接口吧

2004-12-31 15:48:55 西門吹風㊣(48542332)

2004-12-31 15:49:23 /:>D10.天地弦(185511468)
模塊通過實現這個接口,來讓中層間獲取模塊信息

2004-12-31 15:49:38 /:>D10.天地弦(185511468)
定義接口,就是制定協議

2004-12-31 15:49:51 D3天之痕若虹(86278566)
yes

2004-12-31 15:49:51 /:>D10.天地弦(185511468)
? IModelService = interface //模塊操作接口
??? function ProcessData(OwnId: Cardinal; ActionIndex: Integer; var Data, Msg: OleVariant): HResult; stdcall;

??? //主程序調用此函數關閉模塊操作
??? function CloseModel(): HResult; stdcall;
? end;

2004-12-31 15:50:05 /:>D10.天地弦(185511468)
好來看第二個接口

2004-12-31 15:50:15 乾隆(7891551)
給我講講調接口與客戶端直接調用通過中間層的函數又什么好處?
?
2004-12-31 15:50:31 西門吹風㊣(48542332)
先聽吧

2004-12-31 15:50:44 乾隆(7891551)
好吧,基礎太差[:'(]

2004-12-31 15:51:01 /:>D10.天地弦(185511468)
模塊通過實現該接口,來讓中間層執行數據處理操作

2004-12-31 15:51:03?? 冷俊(76437853)
我好吃力的說


2004-12-31 15:51:19 hellfire(149902352)
明白

2004-12-31 15:51:20 神王(375867424)
聽完了,慢慢去想

2004-12-31 15:51:38 西門吹風㊣(48542332)
對,慢慢消化

2004-12-31 15:51:43 /:>D10.天地弦(185511468)
??? function ProcessData(OwnId: Cardinal; ActionIndex: Integer; var Data, Msg: OleVariant): HResult; stdcall;

這個函數,和中間層提供的給客戶端的差不多

2004-12-31 15:51:53 /:>D10.天地弦(185511468)
只是多了一個OwnId

2004-12-31 15:52:02 /:>D10.天地弦(185511468)
我們先不管,

2004-12-31 15:52:16 神王(375867424)
這凼數功能是什么

2004-12-31 15:52:21 /:>D10.天地弦(185511468)
知道是用來調用模塊處理數據的就行了

2004-12-31 15:52:27 /:>D10.天地弦(185511468)
調用模塊處理數據的就行了

2004-12-31 15:52:40 B1.斜陽(249208513)
D10的目的是不是想先通過一個簡單、一致的接口,讓客戶端可以方便地同中間層通訊。

2004-12-31 15:52:48 西門吹風㊣(48542332)
對,具體怎么實現,后面講

2004-12-31 15:52:55 /:>D10.天地弦(185511468)
嗯,

2004-12-31 15:53:13 神王(375867424)
先建立通信機制

2004-12-31 15:53:26?? 冷俊(76437853)
HResult 這個什么意思?

2004-12-31 15:53:31 B1.斜陽(249208513)
然后在中間層中,通過實現約定的接口來擴展中間層能提供的服務數量

2004-12-31 15:53:31 /:>D10.天地弦(185511468)
自己再加模塊的時候就,自己制定ActionIndex的協議就行了

2004-12-31 15:53:54 /:>D10.天地弦(185511468)
HResult 其實就是一個Integer類型

2004-12-31 15:54:07 /:>D10.天地弦(185511468)
??? //主程序調用此函數關閉模塊操作
??? function CloseModel(): HResult; stdcall;

2004-12-31 15:54:18 D3天之痕若虹(86278566)
客戶只要告訴服務器,想做什么的。。
而什么的做,由誰(哪個子模塊來完成)。。就由服務端定義實現。。而這個對客戶是不關心的

2004-12-31 15:54:51 /:>D10.天地弦(185511468)
這個接口,是告訴模塊,中間層要關閉了,進行一行必須的釋放工作

2004-12-31 15:54:59 B1.斜陽(249208513)
我感覺這個由誰做好像也是客戶端指定的

2004-12-31 15:55:20 神王(375867424)
應該是

2004-12-31 15:55:26 /:>D10.天地弦(185511468)
是有點這樣的意思

2004-12-31 15:55:46 西門吹風㊣(48542332)
客戶端傳遞ModuleIndex決定?

2004-12-31 15:55:47 /:>D10.天地弦(185511468)
249208513(B1.斜陽) 15:54:59
我感覺這個由誰做好像也是客戶端指定的 -->是客戶端與模塊之樣的協議一樣

2004-12-31 15:56:00 B1.斜陽(249208513)
而中間層,只是起到一個轉發的中介的作用

2004-12-31 15:56:07 D3天之痕若虹(86278566)
由誰完成操作請請,應該服務端定義。

2004-12-31 15:56:11 /:>D10.天地弦(185511468)

2004-12-31 15:56:21 神王(375867424)
明白

2004-12-31 15:56:32 /:>D10.天地弦(185511468)
? IFrameworkService = interface //框架提供接口
??? function GetID(): Cardinal; stdcall;
??? function GetModelService(ModelIndex: Integer): IModelService; stdcall;
??? function GetFrameWorkInfo(ActionIndex: Integer; var Data, Msg: OleVariant): HResult; stdcall;
??? property ModelService[ModelIndex: Integer]: IModelService read GetModelService; default;
? end;

2004-12-31 15:56:39 /:>D10.天地弦(185511468)
再看一個接口

2004-12-31 15:57:11 /:>D10.天地弦(185511468)
框架提供的接口

2004-12-31 15:57:25 神王(375867424)
這個接口實現什么功能

2004-12-31 15:57:34 D3天之痕若虹(86278566)
恩,說說各個函數的功能

2004-12-31 15:57:40 /:>D10.天地弦(185511468)
中間層會為每個客戶端連接,實現一個這樣的接口

2004-12-31 15:57:58 /:>D10.天地弦(185511468)
這個接口,是給模塊里調用的

2004-12-31 15:58:29 /:>D10.天地弦(185511468)
我先不說吧,后面說

2004-12-31 15:58:45 /:>D10.天地弦(185511468)
? IFrameworkServices = interface //框架集接口(通過該接口查得到框架服務接口)
??? function GetFrameworkService(_id: Integer): IFrameworkService; stdcall;
??? property FrameworkServices[_id: Integer]: IFrameworkService read GetFrameworkService; default;
? end;

2004-12-31 15:58:57 /:>D10.天地弦(185511468)
最后一個接口

2004-12-31 15:59:33 /:>D10.天地弦(185511468)
是中間層為了維護所有的框架集而實現的接口

2004-12-31 15:59:49 乾隆(7891551)
框架服務是指什么啊

2004-12-31 16:00:03 /:>D10.天地弦(185511468)
可以利用該接口來得到一個框架服務接口

2004-12-31 16:00:58 /:>D10.天地弦(185511468)
一個框架就像一個平臺一樣,框架的服務就是為活動在這個平臺上的模塊實現的服務

2004-12-31 16:01:42 乾隆(7891551)
好象明白點了再具體點比方下

2004-12-31 16:01:46 /:>D10.天地弦(185511468)
現在我們再回到
function TMLRDataModule.ProcessData(ModuleIndex, ActionIndex: Integer;
? var Data, Msg: OleVariant): WordBool;
begin
? try
??? result := TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg) = S_OK;
??? result := true;
? except
??? result := false;??? //
? end;
end;

2004-12-31 16:01:47 神王(375867424)
是不是就是的到另外一接口

2004-12-31 16:02:03 /:>D10.天地弦(185511468)
==,我想想

2004-12-31 16:02:06 D3天之痕若虹(86278566)
是的...
好比電話主機,誰打入,它會幫助轉到對應的分機號

2004-12-31 16:02:38 乾隆(7891551)
哦框架接口就是這個電話主機,對吧

2004-12-31 16:02:40 神王(375867424)
好比網絡協議傳輸一樣

2004-12-31 16:02:43 /:>D10.天地弦(185511468)
先按自己的想像來理解一下吧,后面說完應該會明的

2004-12-31 16:03:01 西門吹風㊣(48542332)
按你的思路繼續



<圖四>中間層與模塊通訊圖



2004-12-31 16:03:17 /:>D10.天地弦(185511468)
這是三個主要的接口

2004-12-31 16:03:41 /:>D10.天地弦(185511468)
現在我們來看中間層是如果來做要做的事的?

2004-12-31 16:03:54 /:>D10.天地弦(185511468)
現在我們來看中間層是如何來做要做的事的

2004-12-31 16:04:04 /:>D10.天地弦(185511468)
??? result := TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg) = S_OK;

2004-12-31 16:04:04 乾隆(7891551)
又貼了我就看不到啊

2004-12-31 16:04:29 /:>D10.天地弦(185511468)
是中間層與模塊的通訊里的圖

2004-12-31 16:04:33 /:>D10.天地弦(185511468)
??? result := TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg) = S_OK;?
大家可以看明上面這句嗎?

2004-12-31 16:04:54 乾隆(7891551)
 不可以

2004-12-31 16:05:21 /:>D10.天地弦(185511468)
看看
TFrameworkServices.ItSelf
是什么樣的函數

2004-12-31 16:05:22 西門吹風㊣(48542332)
TFrameworkServices.ItSelf[ID] 創建一個實例

2004-12-31 16:05:25 A3.武稀松(42088303)
是不是要查一下,因為如果你的模塊做成可擴充插入的話.可能要先查一下存不存在

2004-12-31 16:05:39 /:>D10.天地弦(185511468)
是的

2004-12-31 16:06:03 hellfire(149902352)
停一下.我看看TFrameworkServices.ItSelf

2004-12-31 16:06:19 /:>D10.天地弦(185511468)
現在我們來看中間層是如何來做要做的事的 (就是要把信息轉發給模塊),主要是要找到模塊

2004-12-31 16:06:33 /:>D10.天地弦(185511468)
大家看看
TFrameworkServices.ItSelf的實現

2004-12-31 16:07:15 /:>D10.天地弦(185511468)
麻煩貼一下代碼

2004-12-31 16:07:21 西門吹風㊣(48542332)
通過 TFrameworkServices的ModelService 中的ModuleIndex 模塊 的ProcessData 函數去操作數據庫

2004-12-31 16:07:29 D3天之痕若虹(86278566)
class function ItSelf: TFrameworkServices;
{$J+}

class function TFrameworkServices.ItSelf: TFrameworkServices;
const
? FInstance: TFrameworkServices = nil;
begin
? if FInstance = nil then
? begin
??? FInstance := TFrameworkServices(TFrameworkServices.NewInstance());
??? FInstance.Create();
? end;
? result := FInstance;
end;????????? //創建一個實列
{$J-}

2004-12-31 16:07:49 西門吹風㊣(48542332)
注意{$J+}

2004-12-31 16:07:53 /:>D10.天地弦(185511468)
是的

2004-12-31 16:08:01 /:>D10.天地弦(185511468)
?這里用了一個設計模式

2004-12-31 16:08:06 /:>D10.天地弦(185511468)
Singleton 模式
單件模式

2004-12-31 16:08:22 D3天之痕若虹(86278566)
單一模式

2004-12-31 16:08:29 西門吹風㊣(48542332)
設計模式的一種

2004-12-31 16:08:49 hellfire(149902352)
這里慢點,我都還沒看清,就過了

2004-12-31 16:09:19 西門吹風㊣(48542332)
這里開始難以搞懂

2004-12-31 16:09:33 /:>D10.天地弦(185511468)
是在整個框架中,訪問這個函數,得到都是同一個實例

2004-12-31 16:09:42 /:>D10.天地弦(185511468)
還沒有過


2004-12-31 16:09:57 D3天之痕若虹(86278566)
const
? FInstance: TFrameworkServices = nil; //為什么可定成const呢

2004-12-31 16:10:28 /:>D10.天地弦(185511468)
呵呵,不想定義全局變量,就這樣定義了

2004-12-31 16:10:40 hellfire(149902352)
這個函數在哪個單元

2004-12-31 16:10:56 /:>D10.天地弦(185511468)
FrameworkServiceImp

2004-12-31 16:11:13 /:>D10.天地弦(185511468)
大家可以看明不?

2004-12-31 16:11:26 hellfire(149902352)
Tks.找到了

2004-12-31 16:11:32 hellfire(149902352)
明白

2004-12-31 16:11:49 D3天之痕若虹(86278566)
? if FInstance = nil then
? begin
??? FInstance := TFrameworkServices(TFrameworkServices.NewInstance());
??? FInstance.Create();
? end;
//這個 if 有必要嗎。。。

2004-12-31 16:11:57 /:>D10.天地弦(185511468)
當然有

2004-12-31 16:12:10 D3天之痕若虹(86278566)
直接寫不就可以。。。
你申請時已是nil了

2004-12-31 16:12:19 /:>D10.天地弦(185511468)
第二次就不為Nil了

2004-12-31 16:12:26 西門吹風㊣(48542332)
講一講{j+}

2004-12-31 16:12:28 D3天之痕若虹(86278566)
恩,原來如此

2004-12-31 16:12:32 /:>D10.天地弦(185511468)
hehe

2004-12-31 16:12:35 西門吹風㊣(48542332)
就明白了

2004-12-31 16:12:45 西門吹風㊣(48542332)
不論是{$J+}或{$J-}, 以const VarName = const value; 定義的常數(
沒有加上型別宣告), 是一個真正的常數, 其它的程序不可以改變其內容。
其實{$J+}時還有一個妙用, 那就是宣告出類似C語言static的變量, 換句話說,
產生了一個與Application相同生命周期的變量。在這種情形下, 變量只在第一
次使用時才會建立, 函數或程序結束時, 該變量也不會消滅, 下一次再呼叫到這個函數
或程序時, 我們仍然可以參考到上次執行結束時的值。讓我們試一下這個例子:
{$J+}
procedure TForm1.Button1Click(Sender: TObject);
const
i: integer = 0;
begin
ShowMessage(IntToStr(i));
Inc(i);
ShowMessage(IntToStr(i));
end;
第一次執行時, 我們分別會看到「0」「1」, 再點一次這個按鈕時, 看到的將是「1」「2」。

2004-12-31 16:12:53 西門吹風㊣(48542332)
太多了,呵呵

2004-12-31 16:12:54 /:>D10.天地弦(185511468)
修改Const變量,要使用{$J+}

2004-12-31 16:13:21 /:>D10.天地弦(185511468)
明了?,這里要過了

2004-12-31 16:13:29 湖北人(364076660)
==

2004-12-31 16:13:30 D3天之痕若虹(86278566)

2004-12-31 16:13:49 神王(375867424)
明白,

2004-12-31 16:14:15 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf這個就是得到一個TFrameworkServices實例,得到這個實例,是整個框架中唯一的實例

2004-12-31 16:14:30 C06.文/yb(4184443)
D10哥,講了多少了!我剛開完會啊!真暈!

2004-12-31 16:14:45 /:>D10.天地弦(185511468)
你看看記錄

2004-12-31 16:14:52 C06.文/yb(4184443)
哦!

2004-12-31 16:14:55 /:>D10.天地弦(185511468)
我慢慢講,你慢慢跟

2004-12-31 16:15:00 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf這個就是得到一個TFrameworkServices實例,得到這個實例,
是整個框架中唯一的實例?

2004-12-31 16:15:02 C06.文/yb(4184443)
哦!

2004-12-31 16:15:19 /:>D10.天地弦(185511468)
明這句話了,就明了剛剛那段

2004-12-31 16:15:54 /:>D10.天地弦(185511468)
我繼續了

2004-12-31 16:15:59 /:>D10.天地弦(185511468)
? TFrameworkServices = class(TdkObjectList, IFrameworkServices)
? private
??? function GetFrameworkService(_id: Integer): IFrameworkService; stdcall;
? public
??? constructor Create(); //
??? class function ItSelf: TFrameworkServices;
? public
??? property FrameworkServices[_id: Integer]: IFrameworkService read GetFrameworkService; default;
? end;??????? //
?

2004-12-31 16:16:09 /:>D10.天地弦(185511468)
我們來看看這個類

2004-12-31 16:16:20 D3天之痕若虹(86278566)
就是說
class function TFrameworkServices.ItSelf: TFrameworkServices;
只真正創建一個實例?

2004-12-31 16:16:28 /:>D10.天地弦(185511468)

2004-12-31 16:16:36 /:>D10.天地弦(185511468)
看完了沒有,這個類

2004-12-31 16:16:50 /:>D10.天地弦(185511468)
這里和A1的不太一樣

2004-12-31 16:17:05 乾隆(7891551)
崇拜死了,D10delphi這么精通了啊

2004-12-31 16:17:09 /:>D10.天地弦(185511468)
就是查找模塊這個功能

2004-12-31 16:17:18 /:>D10.天地弦(185511468)

2004-12-31 16:17:29 /:>D10.天地弦(185511468)
應該是各位老大,

2004-12-31 16:17:38 西門吹風㊣(48542332)
繼續

2004-12-31 16:17:40 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf[ID]

2004-12-31 16:18:01 /:>D10.天地弦(185511468)
這一句和
TFrameworkServices.ItSelf.FrameworkServices[ID] 一樣的

2004-12-31 16:18:05 /:>D10.天地弦(185511468)
大家明不


2004-12-31 16:18:45 /:>D10.天地弦(185511468)
知道,3弟,你講一下

2004-12-31 16:19:05 D3天之痕若虹(86278566)
class function ItSelf: TFrameworkServices;
定義的類型是一樣的。。。

2004-12-31 16:19:30 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf這一部分可以不用講了解

2004-12-31 16:19:42 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf這一部分可以不用講了

2004-12-31 16:20:05 /:>D10.天地弦(185511468)
3弟,講一下

2004-12-31 16:20:09 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf[ID]
這一句和
TFrameworkServices.ItSelf.FrameworkServices[ID]
一樣的

2004-12-31 16:20:24 hellfire(149902352)
是不是跟FieldByName和Fields[]一個意思

2004-12-31 16:20:32 D3天之痕若虹(86278566)
我看一下

2004-12-31 16:20:57 /:>D10.天地弦(185511468)
hellfire我沒有看,應該差不多

2004-12-31 16:21:30 乾隆(7891551)
TFrameworkServices.ItSelf[ID] 這句作用是什么啊,通俗點說下啊

2004-12-31 16:22:00 神王(375867424)
這兩句都在上面的CLASS中,對嗎

2004-12-31 16:22:09 神王(375867424)
TFrameworkServices.ItSelf[ID]
這一句和
TFrameworkServices.ItSelf.FrameworkServices[ID]
一樣的

2004-12-31 16:22:12 /:>D10.天地弦(185511468)
我來說吧

2004-12-31 16:22:30?? 冷俊(76437853)
TFrameworkServices.ItSelf[ID] 這句作用是什么啊,通俗點說下啊
?

2004-12-31 16:22:37 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf是得到一個實例大家都知道了

2004-12-31 16:22:47 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf.FrameworkServices[ID]?

2004-12-31 16:23:04 B1.斜陽(249208513)
var
? ts: TStringList;
begin
? ts := TStringList.Create;
? ts.Add('aaaaa');
? Caption := ts[0];
? ts.Free
end;

2004-12-31 16:23:04 D3天之痕若虹(86278566)
TFrameworkServices.ItSelf[ID]
TFrameworkServices.ItSelf.FrameworkServices[ID]

都 返回一個IFrameworkService有接口?

2004-12-31 16:23:06 /:>D10.天地弦(185511468)
FrameworkServices是這個實例的一個屬性

2004-12-31 16:23:11 /:>D10.天地弦(185511468)
是的

2004-12-31 16:23:25 /:>D10.天地弦(185511468)
嗯和TStringList一樣的

2004-12-31 16:23:33 B1.斜陽(249208513)
知道這個是啥意思吧,和D10的用法是一樣的

2004-12-31 16:23:35 神王(375867424)
剛聽掉了一點,有點接不上了

2004-12-31 16:23:35 /:>D10.天地弦(185511468)
真高興,看到B1還在

2004-12-31 16:24:01 /:>D10.天地弦(185511468)
? TFrameworkServices = class(TdkObjectList, IFrameworkServices)
? private
??? function GetFrameworkService(_id: Integer): IFrameworkService; stdcall;
? public
??? constructor Create(); //
??? class function ItSelf: TFrameworkServices;
? public
??? property FrameworkServices[_id: Integer]: IFrameworkService read GetFrameworkService; default;
? end;??????? //

2004-12-31 16:24:14 /:>D10.天地弦(185511468)
這上屬性,你們看看property FrameworkServices[_id: Integer]: IFrameworkService read GetFrameworkService; default;
?

2004-12-31 16:24:18 /:>D10.天地弦(185511468)
這一句

2004-12-31 16:24:28 神王(375867424)
看到了

2004-12-31 16:24:30 乾隆(7891551)
哪點和Tstringlist的用法一樣啊,沒看出來

2004-12-31 16:24:51 /:>D10.天地弦(185511468)
249208513(B1.斜陽) 16:23:04
var
? ts: TStringList;
begin
? ts := TStringList.Create;
? ts.Add('aaaaa');
? Caption := ts[0];
? ts.Free
end;?

2004-12-31 16:25:00 B1.斜陽(249208513)
ItSelf[ID]

ts[0]

2004-12-31 16:25:06 /:>D10.天地弦(185511468)
上面的ts[0]就是ts.items[0]

2004-12-31 16:25:22 B1.斜陽(249208513)
是ts.Strings[0]

2004-12-31 16:25:27 /:>D10.天地弦(185511468)
呵呵

2004-12-31 16:25:29 /:>D10.天地弦(185511468)

2004-12-31 16:25:35 乾隆(7891551)
哦,明白了

2004-12-31 16:25:53 B1.斜陽(249208513)
主要是default關鍵字,如果不知道,看看語法書對default的定義吧

2004-12-31 16:26:06 /:>D10.天地弦(185511468)
對主要是Default關鍵字

2004-12-31 16:26:20 西門吹風㊣(48542332)
講一下

2004-12-31 16:26:26 /:>D10.天地弦(185511468)
在屬性上加一個Default關鍵字,就可以像數組一樣訪問了

2004-12-31 16:26:36 D3天之痕若虹(86278566)
property FrameworkServices[_id: Integer]: IFrameworkService read GetFrameworkService; default;
-----
是保持FrameworkServices[_id: Integer]的持久性...

2004-12-31 16:27:47 乾隆(7891551)
哦,是不是加個Default就可以按照[0]取第幾個方法了

2004-12-31 16:27:52 /:>D10.天地弦(185511468)
對的

2004-12-31 16:27:59 /:>D10.天地弦(185511468)
property FrameworkServices[_id: Integer]: IFrameworkService read GetFrameworkService; default;

2004-12-31 16:28:09 /:>D10.天地弦(185511468)
看看類的這個屬性

2004-12-31 16:28:10 hellfire(149902352)
了解[:D]

2004-12-31 16:28:12 /:>D10.天地弦(185511468)
加了一個Default

2004-12-31 16:28:22 /:>D10.天地弦(185511468)
加了一個Default

2004-12-31 16:28:26 神王(375867424)
明白

2004-12-31 16:28:30 /:>D10.天地弦(185511468)
呵呵,以前我也不知道,A1罵出來的

2004-12-31 16:28:51 C03.MUSIC(281361369)
給A1記一等功

2004-12-31 16:29:11 神王(375867424)
我請他[coffee]

2004-12-31 16:29:12 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf[ID]這樣就是調用了

2004-12-31 16:29:23 D3天之痕若虹(86278566)
[:P]

2004-12-31 16:29:25 B1.斜陽(249208513)
要想知道樹有多高,不要去看一片葉子,要站在遠處去看樹的整體。
不要在這些細節上糾纏了,聽講

2004-12-31 16:29:34 /:>D10.天地弦(185511468)
這個實例的
function GetFrameworkService(_id: Integer): IFrameworkService; stdcall;

2004-12-31 16:29:47 /:>D10.天地弦(185511468)

2004-12-31 16:30:19 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf[ID]這樣就是調用了這個實例的
GetFrameworkService(_id: Integer): IFrameworkService; 方法,返回一個IFrameWorkService接口

2004-12-31 16:30:32 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf[ID]返回一個IFrameWorkService接口

2004-12-31 16:30:48 西門吹風㊣(48542332)
明白了

2004-12-31 16:31:00 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex]

2004-12-31 16:31:30 /:>D10.天地弦(185511468)
之后的ModelService[ModuleIndex] 也就是返回一個IModelService接口

2004-12-31 16:32:00 /:>D10.天地弦(185511468)
也是使用了同樣的方法

2004-12-31 16:32:37 /:>D10.天地弦(185511468)
然后再調用該接口的方法ProcessData來處理數據

2004-12-31 16:32:51 /:>D10.天地弦(185511468)
這樣中間層的任務就完成了

2004-12-31 16:33:08 /:>D10.天地弦(185511468)
大家記得中間層的任務嗎?

2004-12-31 16:33:40 神王(375867424)
總結一下,我剛聽掉了一些

2004-12-31 16:34:08 /:>D10.天地弦(185511468)
3弟,中間層的任務是什么?

2004-12-31 16:34:21 A3.武稀松(42088303)
YWLJ

2004-12-31 16:34:38 /:>D10.天地弦(185511468)
YWLJ是什么?

2004-12-31 16:34:57 A3.武稀松(42088303)
你剛才問的答案

2004-12-31 16:35:05 神王(375867424)
大哥,總結一下

2004-12-31 16:35:33 /:>D10.天地弦(185511468)
不懂,

2004-12-31 16:35:36 D3天之痕若虹(86278566)
暈,剛掉了。。

2004-12-31 16:35:39 C9. 隨風飄(87450854)
對 D10 總結下拉?

2004-12-31 16:35:42 A3.武稀松(42088303)
拼音而已[;P]

2004-12-31 16:36:36 /:>D10.天地弦(185511468)
中間層的任務就是
找到對應的模塊接口,接參數傳遞到模塊進行處理

2004-12-31 16:36:45 /:>D10.天地弦(185511468)
還沒有

2004-12-31 16:36:56?? 冷俊(76437853)
哦 那就繼續?

2004-12-31 16:37:00 A3.武稀松(42088303)
暈倒.看來我說錯了

2004-12-31 16:37:05 /:>D10.天地弦(185511468)
今天還要不要繼續

2004-12-31 16:37:06 D3天之痕若虹(86278566)
就是根據client里傳的ModuleIndex, ActionIndex
?先初始相關模塊。。
?然后人在再由模塊管理中心,查

2004-12-31 16:37:22 /:>D10.天地弦(185511468)
中間層的任務就是
找到對應的模塊接口,將參數傳遞到模塊進行處理?

2004-12-31 16:37:28 D3天之痕若虹(86278566)
找對應的處理模塊,來做出相應的處理。。

2004-12-31 16:37:35 /:>D10.天地弦(185511468)
ye

2004-12-31 16:37:48 神王(375867424)
謝謝,繼續

2004-12-31 16:37:53 D3天之痕若虹(86278566)
不好意思,我表達能力不行。。。

2004-12-31 16:38:00 A3.武稀松(42088303)
D10還有的話就繼續啊

2004-12-31 16:38:10 /:>D10.天地弦(185511468)
3哥,我還以為你不在了

2004-12-31 16:38:25 乾隆(7891551)
找對應模塊是靠ModelService[ModuleIndex]
這句吧

2004-12-31 16:38:34 /:>D10.天地弦(185511468)
TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg)

2004-12-31 16:38:43 /:>D10.天地弦(185511468)
就是這一句,就是中間層要做的事了

2004-12-31 16:39:18 /:>D10.天地弦(185511468)
乾隆,是的

2004-12-31 16:39:21 D3天之痕若虹(86278566)
我有個不明白的地方,就是ID什么弄呢

2004-12-31 16:39:21 A3.武稀松(42088303)
我在工作.隔2分鐘才看一次

2004-12-31 16:39:31 /:>D10.天地弦(185511468)
呵呵,

2004-12-31 16:39:41 /:>D10.天地弦(185511468)
ID是什么,就是等下要講的了

2004-12-31 16:40:05?? 冷俊(76437853)
看來還是我這個菜鳥 敬課

2004-12-31 16:40:20 /:>D10.天地弦(185511468)
慢慢來

2004-12-31 16:40:24 A1.Aleyn.wu(45198124)
我和A3差不多,工作中,每隔幾份鐘上來看。

2004-12-31 16:40:29 /:>D10.天地弦(185511468)

2004-12-31 16:40:35 /:>D10.天地弦(185511468)
那我們開始了

2004-12-31 16:40:42 /:>D10.天地弦(185511468)
ID是什么,大家找找

2004-12-31 16:40:44 A3.武稀松(42088303)
但是D10的課,我一定會跟到底的

2004-12-31 16:40:59 /:>D10.天地弦(185511468)
[:<],感動中

2004-12-31 16:41:06 乾隆(7891551)
TFrameworkServices.ItSelf[ID].ModelService[ModuleIndex].ProcessData(Id, ActionIndex, Data, Msg)
   找框架的哪個方法調用     調用哪個功能模塊      具體執行這個功能模塊
理解對不?

2004-12-31 16:41:26 /:>D10.天地弦(185511468)
乾隆,對的

2004-12-31 16:41:29 /:>D10.天地弦(185511468)
你理解了

2004-12-31 16:41:31 D3天之痕若虹(86278566)
10弟弟幸苦了 [coffee]

2004-12-31 16:41:36 /:>D10.天地弦(185511468)
hehe

2004-12-31 16:41:39 A3.武稀松(42088303)
乾隆有進步啊

2004-12-31 16:41:57 /:>D10.天地弦(185511468)
我們繼續啦

2004-12-31 16:41:57 /:>D10.天地弦(185511468)
ID是什么,大家找找?

2004-12-31 16:41:59 神王(375867424)
大哥講的很好

2004-12-31 16:42:04 /:>D10.天地弦(185511468)
[;-D]

2004-12-31 16:42:14 D3天之痕若虹(86278566)
ok

2004-12-31 16:42:17 /:>D10.天地弦(185511468)
大伙的功勞,

2004-12-31 16:42:34 神王(375867424)
回頭[coffee]

2004-12-31 16:42:37 /:>D10.天地弦(185511468)
西門,你不在了

2004-12-31 16:42:44 /:>D10.天地弦(185511468)
ID是什么,大家找找

2004-12-31 16:42:46 西門吹風㊣(48542332)
在,聽

2004-12-31 16:42:51 /:>D10.天地弦(185511468)
3弟,找到沒有?

2004-12-31 16:42:53 D3天之痕若虹(86278566)
FThreadID: Cardinal;
?property ID: Cardinal read FThreadID;

2004-12-31 16:43:06 /:>D10.天地弦(185511468)
我們順藤摸瓜

2004-12-31 16:43:09 D3天之痕若虹(86278566)
只讀的?

2004-12-31 16:43:19 /:>D10.天地弦(185511468)
type
? TMLRDataModule = class(TRemoteDataModule, IMLRDataModule)
??? procedure RemoteDataModuleCreate(Sender: TObject);
??? procedure RemoteDataModuleDestroy(Sender: TObject);
? private
??? { Private declarations }
??? FModels: TModels; //為該客戶端維護的模塊列表
??? FService: TFrameworkService;
??? FThreadID: Cardinal;
??? CurrentUser: TUser;
? protected
??? class procedure UpdateRegistry(Register: Boolean; const ClassID, ProgID: string); override;
??? function ProcessData(ModuleIndex, ActionIndex: Integer; var Data,
????? Msg: OleVariant): WordBool; safecall;
??? function ProcessDataEx(ActionIndex: Integer; var Data,
????? Msg: OleVariant): WordBool; safecall;
? public
??? { Public declarations }
??? property ID: Cardinal read FThreadID;
? end;

2004-12-31 16:43:20 D3天之痕若虹(86278566)
那如何計數?

2004-12-31 16:43:45 西門吹風㊣(48542332)
?FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle
?

2004-12-31 16:44:09 /:>D10.天地弦(185511468)
中間層為每一次客戶端連結創建一個TMLRDataModule?

2004-12-31 16:44:17 /:>D10.天地弦(185511468)
大伙明白這點?

2004-12-31 16:44:37 D3天之痕若虹(86278566)
?FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle
?這樣不會被覆蓋了嗎?

2004-12-31 16:44:48 D3天之痕若虹(86278566)
每一次客戶端連結時

2004-12-31 16:44:58 /:>D10.天地弦(185511468)

2004-12-31 16:45:11 /:>D10.天地弦(185511468)
不知道大伙清不清楚

2004-12-31 16:45:25?? 冷俊(76437853)
D3天之痕若虹(86278566) 16:44:37
?FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle
?這樣不會被覆蓋了嗎?
D3天之痕若虹(86278566) 16:44:48
每一次客戶端連結時 [:>]D10.天地弦(185511468) 16:44:58

????

2004-12-31 16:45:31 D3天之痕若虹(86278566)
我的意思是指,如何保證一致性呢

2004-12-31 16:45:34 西門吹風㊣(48542332)
不是很清楚

2004-12-31 16:45:36 乾隆(7891551)
TMLRDataModule 是什么 相當與什么

2004-12-31 16:45:45 /:>D10.天地弦(185511468)
是RemoteModule

2004-12-31 16:46:07 D3天之痕若虹(86278566)
呵,稍等。。。先碼部分代碼看完先

2004-12-31 16:46:10 /:>D10.天地弦(185511468)
中間層為每一次客戶端連結創建一個TMLRDataModule? 這個是Midas
實現的功能

2004-12-31 16:46:24 /:>D10.天地弦(185511468)
3弟先別急

2004-12-31 16:46:33 /:>D10.天地弦(185511468)
西門清楚不

2004-12-31 16:46:38 西門吹風㊣(48542332)
清楚

2004-12-31 16:46:39 /:>D10.天地弦(185511468)
中間層為每一次客戶端連結創建一個TMLRDataModule? 這個是Midas
實現的功能?

2004-12-31 16:47:06 /:>D10.天地弦(185511468)
這個ID,只是每一次客戶端連結編一個號碼

2004-12-31 16:47:24 /:>D10.天地弦(185511468)
好像大家入隊的編號一樣,叫D3,肯定是3弟了

2004-12-31 16:47:50 D3天之痕若虹(86278566)
[:D]

2004-12-31 16:47:51 /:>D10.天地弦(185511468)
跟上沒有?

2004-12-31 16:47:51?? 冷俊(76437853)
可不可以逃跑?

2004-12-31 16:48:06 /:>D10.天地弦(185511468)
冷俊,你可以逃了

2004-12-31 16:48:12 /:>D10.天地弦(185511468)
呵呵

2004-12-31 16:48:18 西門吹風㊣(48542332)
繼續,不懂就問

2004-12-31 16:48:27 神王(375867424)
還有沒有沒

2004-12-31 16:48:32 /:>D10.天地弦(185511468)
這個ID,讀的就是FThreadID

2004-12-31 16:49:09 /:>D10.天地弦(185511468)
FThreadID 就是在TMLRDataModule創建的時候生成的一個順號

2004-12-31 16:49:13 神王(375867424)
這個筆記在那里

2004-12-31 16:49:22 /:>D10.天地弦(185511468)
procedure TMLRDataModule.RemoteDataModuleCreate(Sender: TObject);
begin
? FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle

? CurrentUser := TUser.Create(FThreadID); //創建用戶類
? TUsers.Users.Add(CurrentUser); //添加至用戶列表

? TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表

? FModels := TModels.Create(false);?? //自己負責釋放對象

? FService := TFrameworkService.Create(FModels, ID); //創建當前service;
? TFrameworkServices.ItSelf.Add(FService);?????????? //添加到框架集里面,
end;

2004-12-31 16:49:30 /:>D10.天地弦(185511468)
? FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle

2004-12-31 16:49:31 乾隆(7891551)
ID是不是就是連接到中間層的時候給每個連接排的序號

2004-12-31 16:49:35 /:>D10.天地弦(185511468)
看到這一句沒有

2004-12-31 16:49:40 /:>D10.天地弦(185511468)

2004-12-31 16:49:44 D3天之痕若虹(86278566)
看到了

2004-12-31 16:49:50 /:>D10.天地弦(185511468)
乾隆,對的,你明了

2004-12-31 16:50:13 /:>D10.天地弦(185511468)
這個編號是為了方便查找

2004-12-31 16:50:24 A3.武稀松(42088303)
D10的ID根據什么創建的

2004-12-31 16:50:26 乾隆(7891551)
天啊,你們把類玩的太熟悉了,[:'(]

2004-12-31 16:50:46 /:>D10.天地弦(185511468)
是累加器,3哥

2004-12-31 16:50:48?? 冷俊(76437853)
為什么?唉 后面的聽不懂了 有點迷茫了 我先工作了 一會在來看記錄 今天的講義整理了一半

2004-12-31 16:50:57 /:>D10.天地弦(185511468)
呵呵

2004-12-31 16:51:12 /:>D10.天地弦(185511468)
每創建一次就累加一次

2004-12-31 16:51:17 A3.武稀松(42088303)
我們使用的是GUID轉化成字符串做唯一的ID的.呵呵

2004-12-31 16:51:23 A1.Aleyn.wu(45198124)
慢慢來,就會聽懂了。

2004-12-31 16:51:36 神王(375867424)
我也是,中間掉了一些,跟不上了

2004-12-31 16:51:39 A1.Aleyn.wu(45198124)
就象D10,不用很久就學會了。

2004-12-31 16:51:44 /:>D10.天地弦(185511468)
呵呵,我開始也是這樣考慮,

2004-12-31 16:51:49 乾隆(7891551)
我要堅持聽下來

2004-12-31 16:51:51 C9. 隨風飄(87450854)
INC(ID)?

2004-12-31 16:52:07 /:>D10.天地弦(185511468)
你看看dkHandle.newhandle

2004-12-31 16:52:10 /:>D10.天地弦(185511468)
C9

2004-12-31 16:52:11 A1.Aleyn.wu(45198124)
42088303(A3.武稀松) 16:51:17
我們使用的是GUID轉化成字符串做唯一的ID的.呵呵
<-和我做的一樣。

2004-12-31 16:52:28 A1.Aleyn.wu(45198124)
不過GUID是32位的,我的是16位的。

2004-12-31 16:52:31 D3天之痕若虹(86278566)
function NewHandle: Cardinal;
begin
? id := id + 1;
? result := id;
end;

2004-12-31 16:52:35 /:>D10.天地弦(185511468)
[:L]

2004-12-31 16:52:44 C9. 隨風飄(87450854)
OK 看看先?

2004-12-31 16:52:51 /:>D10.天地弦(185511468)
呵呵,只是累加,和生成GUID也是一樣的

2004-12-31 16:52:54 C9. 隨風飄(87450854)
剛掉了線

2004-12-31 16:52:59 /:>D10.天地弦(185511468)
好了,繼續

2004-12-31 16:53:01 D3天之痕若虹(86278566)
看個人用法習慣

2004-12-31 16:53:06 A3.武稀松(42088303)
A1的16位怎么搞得

2004-12-31 16:53:43 A3.武稀松(42088303)
D10繼續啊

2004-12-31 16:53:53 /:>D10.天地弦(185511468)
框架為每個客戶端連結維護了一個TFrameworkService,FModels: TModels; //為該客戶端維護的模塊列表

2004-12-31 16:54:02 /:>D10.天地弦(185511468)
繼續

2004-12-31 16:54:08 /:>D10.天地弦(185511468)
框架為每個客戶端連結維護了一個TFrameworkService,FModels: TModels; //為該客戶端維護的模塊列表

2004-12-31 16:54:17 /:>D10.天地弦(185511468)
先理解這一句

2004-12-31 16:54:29?? 冷俊(76437853)
舍不得走啊 我還是繼續聽課吧

2004-12-31 16:54:40 /:>D10.天地弦(185511468)
呵呵,慢慢聽

2004-12-31 16:54:50 /:>D10.天地弦(185511468)
我講得也很慢

2004-12-31 16:54:55 神王(375867424)
我也一樣,什么事也不做

2004-12-31 16:54:59 神王(375867424)
聽課

2004-12-31 16:55:09 /:>D10.天地弦(185511468)
明了上面那句沒有?

2004-12-31 16:55:12 D3天之痕若虹(86278566)
FModels: TModels; //為該客戶端維護的模塊列表
??? FService: TFrameworkService;
??? FThreadID: Cardinal;
??? CurrentUser: TUser;
---------------
對ClientX的管理

2004-12-31 16:55:23 hellfire(149902352)
我也上WC都沒時間

2004-12-31 16:56:03 /:>D10.天地弦(185511468)
CurrentUser: TUser;還沒有具體來實現,可以保存當前客戶端登陸的一些信息

2004-12-31 16:56:28 /:>D10.天地弦(185511468)
選取的帳套

2004-12-31 16:56:53 D3天之痕若虹(86278566)

?

2004-12-31 16:57:17 乾隆(7891551)
為該客戶端維護的模塊列表 ?有什么具體作用啊

2004-12-31 16:57:18 /:>D10.天地弦(185511468)
框架為每個客戶端連結維護了一個TFrameworkService,FModels: TModels;
大伙要記住這一句

2004-12-31 16:57:49 西門吹風㊣(48542332)
這句對吧
?FModels := TModels.Create(false);?? //自己負責釋放對象?

2004-12-31 16:57:56 /:>D10.天地弦(185511468)

2004-12-31 16:58:03 /:>D10.天地弦(185511468)
好我們繼續

2004-12-31 16:58:26 乾隆(7891551)
框架為每個客戶端連結維護了一個TFrameworkService,FModels: TModels;
這句再說下

2004-12-31 16:58:30 /:>D10.天地弦(185511468)
看看
procedure TMLRDataModule.RemoteDataModuleCreate(Sender: TObject);
begin
? FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle

? CurrentUser := TUser.Create(FThreadID); //創建用戶類
? TUsers.Users.Add(CurrentUser); //添加至用戶列表

? TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表

? FModels := TModels.Create(false);?? //自己負責釋放對象

? FService := TFrameworkService.Create(FModels, ID); //創建當前service;
? TFrameworkServices.ItSelf.Add(FService);?????????? //添加到框架集里面,
end;
?

2004-12-31 16:58:46 D3天之痕若虹(86278566)
總框架只產生一個實現。。。。

而用戶信息,含所需模塊信息,就地.ItSelf.Add(FService);追加。。?

2004-12-31 16:59:22 D8。飄塵(43745429)
function NewHandle: Cardinal;
begin
? id := id + 1;
? result := id;
end;?

2004-12-31 16:59:27 D8。飄塵(43745429)
這里有錯呀

2004-12-31 16:59:32 D8。飄塵(43745429)
沒有獨占呀

2004-12-31 16:59:32 /:>D10.天地弦(185511468)
7891551(乾隆) 16:58:26
框架為每個客戶端連結維護了一個TFrameworkService,FModels: TModels;
這句再說下 ==>每個客戶端連結可以通過維護的這些實例來做要做的事

2004-12-31 16:59:49 /:>D10.天地弦(185511468)
43745429(D8。飄塵) 16:59:22
function NewHandle: Cardinal;
begin
? id := id + 1;
? result := id;
end;?
43745429(D8。飄塵) 16:59:27
這里有錯呀
43745429(D8。飄塵) 16:59:32
沒有獨占呀 =>

2004-12-31 16:59:54 /:>D10.天地弦(185511468)
暈,是沒有,再加

2004-12-31 17:00:09 /:>D10.天地弦(185511468)
3弟,對的

2004-12-31 17:00:10 hellfire(149902352)
加什么

2004-12-31 17:00:29 /:>D10.天地弦(185511468)
procedure TMLRDataModule.RemoteDataModuleCreate(Sender: TObject);
begin
? FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle
? CurrentUser := TUser.Create(FThreadID); //創建用戶類
? TUsers.Users.Add(CurrentUser); //添加至用戶列表

? TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表

? FModels := TModels.Create(false);?? //自己負責釋放對象

? FService := TFrameworkService.Create(FModels, ID); //創建當前service;
? TFrameworkServices.ItSelf.Add(FService);?????????? //添加到框架集里面,
end;
//看看這一段

2004-12-31 17:00:31?? 冷俊(76437853)
不要講錯啊 我很難找到的

2004-12-31 17:00:34 乾隆(7891551)
這句再說下 ==>每個客戶端連結可以通過維護的這些實例來做要做的事

再通俗點好嗎,具體維護實例怎么講。

2004-12-31 17:00:46 乾隆(7891551)
這句再說下 ==>每個客戶端連結可以通過維護的這些實例來做要做的事

再通俗點好嗎,具體維護實例怎么講。

2004-12-31 17:01:06 D3天之痕若虹(86278566)
TRemoteDataModules.ItSelf.Remove(Self);
能正確釋放對應資源嗎?

與這個比效TFrameworkServices.ItSelf.Add(FService);

2004-12-31 17:01:26 /:>D10.天地弦(185511468)
乾隆,你現在只要記住,每個客戶端連結可以通過維護的這些實例來做要做的事?

2004-12-31 17:01:31 D3天之痕若虹(86278566)
我看傳的self怪怪得[?]

2004-12-31 17:01:58 /:>D10.天地弦(185511468)
3弟,你跑快了

2004-12-31 17:02:08 D3天之痕若虹(86278566)
[;-D]

2004-12-31 17:02:21 乾隆(7891551)
好吧,就是維護具體的一個對象來實現要做的事情

2004-12-31 17:02:32 /:>D10.天地弦(185511468)
繼續

2004-12-31 17:02:45 D3天之痕若虹(86278566)
聽你的先。。。

2004-12-31 17:03:33 /:>D10.天地弦(185511468)
?1. FThreadID := dkHandle.NewHandle; //為每個客戶端創建一個Handle

?2. CurrentUser := TUser.Create(FThreadID); //創建用戶類
?3. TUsers.Users.Add(CurrentUser); //添加至用戶列表

?4. TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表

?5. FModels := TModels.Create(false);?? //自己負責釋放對象

?6. FService := TFrameworkService.Create(FModels, ID); //創建當前service;
?7. TFrameworkServices.ItSelf.Add(FService);?????????? //添加到框架集里面,

2004-12-31 17:03:51 /:>D10.天地弦(185511468)
1句講過了

2004-12-31 17:04:10 /:>D10.天地弦(185511468)
是為每個客戶端連結產生一個編號

2004-12-31 17:04:32 /:>D10.天地弦(185511468)
2.是創建一個TUser對象,

2004-12-31 17:04:33 神王(375867424)
[ID]

2004-12-31 17:04:48 /:>D10.天地弦(185511468)
還沒有什么用,可以用來保存一些客戶端信息

2004-12-31 17:05:31 /:>D10.天地弦(185511468)
3句TUsers,和FrameworkServices一樣的了,維護的是一個列表,

2004-12-31 17:05:36 D3天之痕若虹(86278566)
恩,那就從3開始

2004-12-31 17:05:41 /:>D10.天地弦(185511468)
也使用了單件模式

2004-12-31 17:05:50 乾隆(7891551)
procedure TMLRDataModule.RemoteDataModuleCreate(Sender: TObject);這個應該叫方法?
是在哪里定義的是中間層里嗎

2004-12-31 17:05:58 /:>D10.天地弦(185511468)
2,3還有待完shan

2004-12-31 17:06:05 /:>D10.天地弦(185511468)
是的

2004-12-31 17:06:17 /:>D10.天地弦(185511468)
是建立的時候的事件

2004-12-31 17:06:25 D3天之痕若虹(86278566)
TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表
?TFrameworkServices.ItSelf.Add(FService);?????????? //添加到框架集里面,
這是不是維護了兩份client信息。。。

2004-12-31 17:06:40 /:>D10.天地弦(185511468)
不是

2004-12-31 17:06:42 D3天之痕若虹(86278566)
如果信成地同一個會不會更好管理呢

2004-12-31 17:06:52 /:>D10.天地弦(185511468)
3. TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表

2004-12-31 17:06:54? 尋歡(42477914)
今天什么主題?[?]

2004-12-31 17:06:59 /:>D10.天地弦(185511468)
?4. TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表

2004-12-31 17:07:03 /:>D10.天地弦(185511468)
這個

2004-12-31 17:07:15 神王(375867424)
3,4好好講講

2004-12-31 17:07:22 /:>D10.天地弦(185511468)
這個還沒有什么用,后來發現好像不用,也可以

2004-12-31 17:07:26 乾隆(7891551)
procedure TMLRDataModule.RemoteDataModuleCreate(Sender: TObject);這個該叫什么模塊,中間層的總調度?

2004-12-31 17:07:38 /:>D10.天地弦(185511468)
TRemoteDataModules是自己定義的一個類

2004-12-31 17:07:40?? 冷俊(76437853)
[:>]D10.天地弦(185511468) 17:06:17
是建立的時候的事件

什么意思?

2004-12-31 17:07:58 A3.武稀松(42088303)
185511468([:>]D10.天地弦) 17:07:22
這個還沒有什么用,后來發現好像不用,也可以
-----------
半句話

2004-12-31 17:08:14 /:>D10.天地弦(185511468)
[:L]

2004-12-31 17:08:15 A1.Aleyn.wu(45198124)
[:D]

2004-12-31 17:08:34 /:>D10.天地弦(185511468)
?4. TRemoteDataModules.ItSelf.Add(Self); //添加當前模塊到列表
這個還沒有什么用,后來發現好像不用這樣也可以?

2004-12-31 17:08:38?? 冷俊(76437853)
我剛發的也是半句

2004-12-31 17:08:46 A3.武稀松(42088303)
[:D]

2004-12-31 17:09:05 /:>D10.天地弦(185511468)
procedure TMLRDataModule.RemoteDataModuleCreate(Sender: TObject)
這個函數發生在什么時候有人不明嗎?

2004-12-31 17:09:07 江畔綠舟(8128584)
DELPHI對象可以序列化嗎?

2004-12-31 17:09:09 神王(375867424)
是為了維護每一個功能模用對嗎

2004-12-31 17:09:27 /:>D10.天地弦(185511468)
procedure TMLRDataModule.RemoteDataModuleCreate(Sender: TObject)
這個函數發生在什么時候有人不明嗎?

2004-12-31 17:09:32 hellfire(149902352)
不就是OnCreate事件嗎

2004-12-31 17:09:39? 尋歡(42477914)
呵呵

2004-12-31 17:09:44 D3天之痕若虹(86278566)
知到呀

2004-12-31 17:09:46 神王(375867424)
這個回頭告訴,

2004-12-31 17:09:46 /:>D10.天地弦(185511468)
是,但是陛下好像不知道

2004-12-31 17:09:56 hellfire(149902352)
早明白了

2004-12-31 17:10:00 西門吹風㊣(48542332)
陛下?

2004-12-31 17:10:01 神王(375867424)
接著說A3問的問題

2004-12-31 17:10:01 乾隆(7891551)
是發生在中間層用來維護其他模塊的吧

2004-12-31 17:10:03 C9. 隨風飄(87450854)
RemoteDataModule ON CREATE

2004-12-31 17:10:06 乾隆(7891551)
告訴我啊

2004-12-31 17:10:15 /:>D10.天地弦(185511468)
事件就是當什么時候,要做的事

2004-12-31 17:10:38 /:>D10.天地弦(185511468)
陛下就是干隆

2004-12-31 17:10:43 /:>D10.天地弦(185511468)
只是陛下好打一點

2004-12-31 17:10:47 神王(375867424)
接著講

2004-12-31 17:10:59?? 冷俊(76437853)
暈暈 好好講啊

2004-12-31 17:11:01 乾隆(7891551)
RemoteDataModuleCreate這是該類的個事件啊[:$]

2004-12-31 17:11:04 /:>D10.天地弦(185511468)
乾隆掉隊了,你們等等,我拿一把

2004-12-31 17:11:33 乾隆(7891551)
就是,得照顧老弱者

2004-12-31 17:11:39 C9. 隨風飄(87450854)
我暈

2004-12-31 17:11:47 西門吹風㊣(48542332)
陛下:是數據模組建立時候的事件

2004-12-31 17:11:49 神王(375867424)
時間有限嗎

2004-12-31 17:12:04 /:>D10.天地弦(185511468)
TMLRDataModule什么時候會創建實例

2004-12-31 17:12:06 C9. 隨風飄(87450854)
我還沒怎么接觸這些思想

2004-12-31 17:12:18?? 冷俊(76437853)
不知道

2004-12-31 17:12:28 /:>D10.天地弦(185511468)
講不完以后再開

2004-12-31 17:13:01 /:>D10.天地弦(185511468)
TMLRDataModule什么時候會創建實例 ,乾隆你明不?

2004-12-31 17:13:20 /:>D10.天地弦(185511468)
西門,你告訴他們兩個

2004-12-31 17:13:31 神王(375867424)
48542332(西門吹風㊣) 17:11:47
陛下:是數據模組建立時候的事件?

2004-12-31 17:13:32 西門吹風㊣(48542332)
客戶端 ProcessData的時候

2004-12-31 17:13:45 /:>D10.天地弦(185511468)
不是哦
?

2004-12-31 17:14:02 /:>D10.天地弦(185511468)
是客戶端和中間層第一次連結的時候

2004-12-31 17:14:15 乾隆(7891551)
我掉線了[:'(]

2004-12-31 17:14:19 /:>D10.天地弦(185511468)
會創建一個TMLRDataModule實例

2004-12-31 17:14:26 /:>D10.天地弦(185511468)
[:L]暈

2004-12-31 17:14:32 /:>D10.天地弦(185511468)
TMLRDataModule什么時候會創建實例 ,乾隆你明不??

2004-12-31 17:14:43 /:>D10.天地弦(185511468)
是客戶端和中間層第一次連結的時候
會創建一個TMLRDataModule實例?

2004-12-31 17:14:44 西門吹風㊣(48542332)
對,我搞錯了,中間層運行的時候就create

2004-12-31 17:15:09 /:>D10.天地弦(185511468)
TMLRDataModule的實例是每個客戶端一份實例

2004-12-31 17:15:11 乾隆(7891551)
哦,我知道了

2004-12-31 17:15:41 /:>D10.天地弦(185511468)
??? procedure RemoteDataModuleCreate(Sender: TObject);
這個事件是這個實例創建的時候發生的事件

2004-12-31 17:15:48 /:>D10.天地弦(185511468)
冷jun明不?

2004-12-31 17:16:01 /:>D10.天地弦(185511468)
這個事件就是ONCreate事件了

2004-12-31 17:16:07 D12.阿凱(107125961)
哈哈

2004-12-31 17:16:10 D12.阿凱(107125961)
明白

2004-12-31 17:16:15 /:>D10.天地弦(185511468)
在Create創建的時候發件的事件

2004-12-31 17:16:29 /:>D10.天地弦(185511468)
陛下,知道了不?

2004-12-31 17:16:35 神王(375867424)
阿兄半路出來也明白

2004-12-31 17:16:46?? 冷俊(76437853)
我在品? 繼續 謝謝

2004-12-31 17:16:57 乾隆(7891551)
哦就是當客戶端和中間層第一次連結的時候,就觸發中間層的RemoteDataModuleCreate事件,
做那堆初始化,維護工作了

2004-12-31 17:17:00 神王(375867424)
我中間掉了一些,后面我都>>>

2004-12-31 17:17:01 D12.阿凱(107125961)
哈哈,我邊開會邊看

2004-12-31 17:17:02 /:>D10.天地弦(185511468)
好了,今天講到這里吧

2004-12-31 17:17:25 /:>D10.天地弦(185511468)
下次再找個時間繼續

2004-12-31 17:17:37 hellfire(149902352)
什么時候

2004-12-31 17:17:44? 尋歡(42477914)
群主真是辛苦!

2004-12-31 17:17:45 /:>D10.天地弦(185511468)
待通知

轉載于:https://www.cnblogs.com/DKSoft/articles/85708.html

總結

以上是生活随笔為你收集整理的主题:的中间层框架 第一节的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。