?? unit1.pas
字號:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdAntiFreezeBase, IdAntiFreeze, IdTCPServer,
IdBaseComponent, IdComponent, IdTCPConnection, IdTCPClient,StrUtils;
type
TForm1 = class(TForm)
tcpClient: TIdTCPClient;
tcpServer: TIdTCPServer;
IdAntiFreeze1: TIdAntiFreeze;
GroupBox1: TGroupBox;
Label6: TLabel;
editHost: TEdit;
Label7: TLabel;
editPort: TEdit;
btnLogin: TButton;
btnOut: TButton;
GroupBox2: TGroupBox;
lbUser: TListBox;
GroupBox3: TGroupBox;
memoTalkInfo: TMemo;
GroupBox4: TGroupBox;
memoSystemInfo: TMemo;
GroupBox5: TGroupBox;
editMessage: TEdit;
cbUser: TComboBox;
btnSend: TButton;
procedure btnloginClick(Sender: TObject);
procedure btnsendClick(Sender: TObject);
procedure tcpServerConnect(AThread: TIdPeerThread);
procedure tcpServerExecute(AThread: TIdPeerThread);
procedure btnOutClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.btnloginClick(Sender: TObject);
begin
tcpClient.Host:=editHost.Text;
tcpClient.Port:=strtoint(editPort.Text);
tcpServer.DefaultPort:=6061; //定義本地服務器端口
tcpServer.Active:=true; //開啟本地服務器
memoSystemInfo.Lines.Add(DateTimeToStr(Now())+':正在連接'+edithost.Text);
try
tcpClient.Connect(5000);
try
memoSystemInfo.Lines.Add(DateTimeToStr(Now())+':'+tcpClient.ReadLn());
//lbUser.Items.CommaText:=tcpClient.ReadLn();
//cbUser.Items.CommaText:=lbUser.Items.CommaText;
//cbUser.ItemIndex:=0;
btnLogin.Enabled:=false;
btnOut.Enabled:=true;
btnSend.Enabled:=true;
except
memoSystemInfo.Lines.Add(DateTimeToStr(Now())+':無法連接服務器!');
tcpClient.Disconnect();
end;
except
memoSystemInfo.Lines.Add(DateTimeToStr(Now())+':無法連接到'+editHost.Text+'服務器!');
end;
end;
procedure TForm1.btnsendClick(Sender: TObject);
begin
//editmessage.Text:=cbUser.Text;
memoTalkInfo.Lines.Add(DateTimeToStr(Now())+':你微笑地對說:'+cbUser.Text+','+editMessage.Text);
tcpClient.WriteLn(cbUser.Text+','+editMessage.Text);
memoSystemInfo.Lines.Add(DateTimeToStr(Now())+':'+tcpClient.ReadLn());
end;
procedure TForm1.tcpServerConnect(AThread: TIdPeerThread);
begin
Athread.Connection.WriteLn('發送成功!');
end;
procedure TForm1.tcpServerExecute(AThread: TIdPeerThread);
var
tempstring:string;
i:integer;
begin
tempstring:=AThread.Connection.ReadLn();
i:=Length(tempstring);
if Leftstr(tempstring,1)='q' then
begin
memoSystemInfo.Lines.Add(DateTimeToStr(Now())+':服務器停止!');
lbUser.Clear;
cbUser.Clear;
tcpClient.Disconnect();
btnLogin.Enabled:=true;
btnOut.Enabled:=false;
btnSend.Enabled:=false;
end
else if Leftstr(tempstring,1)='p' then
begin
lbUser.Items.CommaText:=RightStr(tempstring,i-1);
cbUser.Items.CommaText:=lbUser.Items.CommaText;
cbUser.ItemIndex:=0;
end
else
memoTalkInfo.Lines.Add(DateTimeToStr(Now())+':'+tempstring);
end;
procedure TForm1.btnOutClick(Sender: TObject);
begin
tcpClient.WriteLn('QUIT');
memoSystemInfo.Lines.Add(DateTimeToStr(Now())+':退出服務器!');
lbUser.Clear;
cbUser.Clear;
tcpClient.Disconnect();
btnLogin.Enabled:=true;
btnOut.Enabled:=false;
btnSend.Enabled:=false;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if btnOut.Enabled then
tcpClient.WriteLn('QUIT');
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -