請教要如何利用(TObject *Sender)來減少重複程式? |
答題得分者是:Justmade
|
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
小弟正在寫一個網路連結程式,主要是單一Client要去抓取多個Server的資料,小弟用的主要元件為ClientSocket及ServerSocket,但是由於ClientSocket較多且功能都相同,只是對應到不同的連線,是不是可以利用(TObject *Sender)中的Sender參數來減少重複程式(如ClientSocket1Read,ClientSocket2Read,ClientSocket3Read用ClientSocketRead來全部概括)呢? 如蒙賜教,不勝感激!
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
|
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
找出到底是幾號 1. 你可用從 (TClientSocket *Sender).Name 找出是幾號 或
2. 你可在 ClientSocketX.Tag 存放號數來分辦是幾號 找出合適的 MemoryStream 由於 MemoryStream 不是元件所以不能用 FindComponent 方法找出合適的,你可以用一個 Array 或 TList 來裝著這些 MemoryStream 的 Pointer, 在找到是幾號後使用 另外,新的問題請儘量開新題目因為懂的人不一定是同一個人,開新提目會較容易得到合適的答案。
|
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
|
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
上次得到Justmade版主大哥的回答後,由於一直在處理別的問題,直到最近才有機會來試看看版主大哥的建議,但是小弟試過後會出現問題,以下是程式碼摘要:
void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
AnsiString command = Socket->ReceiveText();
AnsiString filename,msg;
if (command=="Command_1")
{
msg = "Command_1 was Received" ;
SendMessage(Sender,msg);
}
} void TForm1::SendImage(TObject *Sender,AnsiString msg)
{
(TServerSocket *Sender)->Socket->Connections[0]->SendText(msg);
} 出現的錯誤訊息為:
[C Error] Unit1.cpp(204): E2108 Improper use of typedef 'TServerSocket' 請Justmade大哥或者其它版上高手們幫幫忙,先謝啦!▲
|
danielj
初階會員 發表:65 回覆:135 積分:40 註冊:2003-06-11 發送簡訊給我 |
引言: 上次得到Justmade版主大哥的回答後,由於一直在處理別的問題,直到最近才有機會來試看看版主大哥的建議,但是小弟試過後會出現問題,以下是程式碼摘要: void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, TCustomWinSocket *Socket) { AnsiString command = Socket->ReceiveText(); AnsiString filename,msg; if (command=="Command_1") { msg = "Command_1 was Received" ; SendMessage(Sender,msg); } } void TForm1::SendImage(TObject *Sender,AnsiString msg) { (TServerSocket *Sender)->Socket->Connections[0]->SendText(msg); } 出現的錯誤訊息為: [C Error] Unit1.cpp(204): E2108 Improper use of typedef 'TServerSocket' 請Justmade大哥或者其它版上高手們幫幫忙,先謝啦!▲小弟自己亂試了一下,發現可能要用((TServerSocket *)Sender)來取得ServerSocket才比較對,但是經過測試發現會有錯誤,小弟去看取出來的內容好像不太對,因此執行後不知道是當在那邊,能否有那位前輩能給個Socket的例子來給小弟了解? 謝謝! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |