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

請問TListBox與Indy問題

答題得分者是:gemi0305
willchen
初階會員


發表:64
回覆:81
積分:29
註冊:2003-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-15 03:04:33 IP:211.74.xxx.xxx 未訂閱
真是抱歉又有問題發問 其實這個問題是之前有問過,但都沒有一個很好的方法,小弟想了半天還是想不到好方法.問題大致上是這樣的 我有一個
gemi0305
版主


發表:81
回覆:564
積分:629
註冊:2003-05-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-15 09:53:39 IP:210.66.xxx.xxx 未訂閱
這是寫在TServerSocket之下的,了解原理之後, 你再自己改到使用的元件上。    之前的文章有提到,要帶一個RemotePort才能正確分辨出是那個Client Connection, 只要抓每個list中的RemotePort,拿出來比對,就會不出錯。    在欄位最後都加一個":"+RemoteRort如綠色所示。  
     void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
     ListBox1->Items->Add(Socket->RemoteAddress ":" Socket->RemotePort);
}
//---------------------------------------------------------------------------    void __fastcall TForm1::ServerSocket1ClientDisconnect(TObject *Sender,
      TCustomWinSocket *Socket)
{
     int tmpPort;
     for (int i=0;iCount;i  )
     {
          tmpPort=ListBox1->Items->Strings[i].SubString(ListBox1->Items->Strings[i].Pos(":") 1,
                            ListBox1->Items->Strings[i].Length()-ListBox1->Items->Strings[i].Pos(":")).ToInt();              if (tmpPort==Socket->RemotePort)
          {
              ListBox1->Items->Delete(i);
              i--;
          }
     }
}    
自己寫個小程式來試試看 國泰平安
willchen
初階會員


發表:64
回覆:81
積分:29
註冊:2003-05-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-15 16:01:45 IP:211.74.xxx.xxx 未訂閱
謝謝版主,我改寫寫出來了,真是太感激了
系統時間:2024-04-28 13:06:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!