線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1291
推到 Plurk!
推到 Facebook!

當Client離線時,Server的listview如何重新更新線上人員呢?

尚未結案
yuliang
一般會員


發表:1
回覆:1
積分:0
註冊:2004-09-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-27 23:35:04 IP:218.162.xxx.xxx 未訂閱
請問一下各位,當我client如果登入時,client的ip會記錄在我listview裡,但如何client離線時,如何使listview重新更新線上人員或刪除listview離線人員 這是我的程式碼,請各位指教一下 Client的  
 
unit U_TCPClient_OnlineUser;
interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,
  StdCtrls;    type
  TForm1 = class(TForm)
    Button1: TButton;
    IdTCPClient1: TIdTCPClient;
    Edit1: TEdit;
    Label1: TLabel;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  Form1: TForm1;    implementation    {$R *.dfm}    procedure TForm1.Button1Click(Sender: TObject);
begin
  IdTCPClient1.Connect;
  IdTCPClient1.WriteLn(Edit1.Text);
end;    end.
server的
 unit U_TCPServer_OnLineUser;    interface    uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, IdBaseComponent, IdComponent, IdTCPServer, ComCtrls, StdCtrls;    type
  TOnLineUser = class(TForm)
    LV1: TListView;
    IdTCPServer1: TIdTCPServer;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Button1: TButton;
    procedure FormActivate(Sender: TObject);
    procedure IdTCPServer1Execute(AThread: TIdPeerThread);
    procedure LV1SelectItem(Sender: TObject; Item: TListItem;
      Selected: Boolean);
    procedure IdTCPServer1Disconnect(AThread: TIdPeerThread);
  private
    { Private declarations }
  public
    { Public declarations }
  end;    var
  OnLineUser: TOnLineUser;    implementation    {$R *.dfm}        procedure TOnLineUser.FormActivate(Sender: TObject);
begin
  IdTCPServer1.Active := True;
end;    procedure TOnLineUser.IdTCPServer1Execute(AThread: TIdPeerThread);
var AddListItem : TListItem;
begin
  AddListItem := LV1.Items.Add;
  AddListItem.Caption := AThread.Connection.ReadLn();
  AddListItem.SubItems.Add(AThread.Connection.Socket.Binding.PeerIP);
  AddListItem.SubItems.Add(FormatDatetime('yyyy/mm/dd--hh:nn', Now));    end;    procedure TOnLineUser.LV1SelectItem(Sender: TObject; Item: TListItem;
  Selected: Boolean);
begin
  Edit1.Text := LV1.Selected.SubItems.GetText;
end;    procedure TOnLineUser.IdTCPServer1Disconnect(AThread: TIdPeerThread);
begin
end;    end.
geniustom
版主


發表:100
回覆:303
積分:260
註冊:2003-01-03

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-11-28 20:21:42 IP:219.68.xxx.xxx 未訂閱
yuliang您好,我以前有做過類似的程式,可以給您參考看看,這是一個很簡單的範例 不過是使用TCPSERVER/TCPCLIENT,您可能需要修改一下,或是看看其中的原理 程式連結:http://delphi.ktop.com.tw/loadfile.php?TOPICID=18944964&CC=423696 我的方法是使用一個結構來儲存CLEINT端的資訊, 當有CLIENT連入,或離開時,動態的增刪該結構裡的資料, 然後在呼叫GetOnlineList這個FUNCTION去更新LISTBOX裡的IP及名單 對於聊天,登入,離線的封包處理都做的很有擴充性,您可以好好研究一下 > <> <> <> < > <> < class="code"> =程式是一種藝術 也是訓練自己的分析規劃= =是段落分明 或是雜亂無章= =是一言以敝 或是廢話連篇= =是一目了然 或是艱深難懂= 體會這份藝術 您會了解另一份喜悅與成就
yuliang
一般會員


發表:1
回覆:1
積分:0
註冊:2004-09-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-11-29 08:54:40 IP:218.162.xxx.xxx 未訂閱
在這裡先謝謝高手你的指導 小弟我先去試試看看~~THX~~~
Ktop_Robot
站務副站長


發表:0
回覆:3511
積分:0
註冊:2007-04-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2007-04-26 13:51:20 IP:000.000.xxx.xxx 未訂閱
提問者您好:


以上回應是否已得到滿意的答覆?


若已得到滿意的答覆,請在一週內結案,否則請在一週內回覆還有什麼未盡事宜,不然,
將由版主(尚無版主之區域將由副站長或站長)自由心證,選擇較合適之解答予以結案處理,
被選上之答題者同樣會有加分獎勵同時發問者將受到扣 1 分的處分。不便之處,請見諒。


有問有答有結案,才能有良性的互動,良好的討論環境需要大家共同維護,感謝您的配合。

------
我是機器人,我不接受簡訊.
系統時間:2024-05-08 9:12:01
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!