1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112
| unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Label2: TLabel;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
IdTCPClient1: TIdTCPClient;
Shape1: TShape;
Memo1: TMemo;
Timer1: TTimer;
Label3: TLabel;
Edit4: TEdit;
Edit3: TEdit;
Button3: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Déclarations privées }
public
{ Déclarations publiques }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
IdTCPClient1.Port:= strtoint(edit2.text);(* spécifier le port*)
IdTCPClient1.Host:=Edit1.Text; (* Spécifier l'adresse IP du serveur.*)
if (edit1.Text<>'') and (edit2.Text<>'') and (edit4.Text <>'') then
begin
IdTCPClient1.connect; (* demander détablir une connexion*)
Shape1.Brush.Color := clblue;(* Brush Spécifie la couleur et le motif utilisés pour remplir le contrôle forme.*)
button1.Enabled:=false;
button2.Enabled:=true;
button3.Enabled:=true;
edit3.Enabled:=true;
edit3.SetFocus;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
IdTCPClient1.Disconnect; (* se déconnecter*)
Shape1.Brush.Color := clred;
button1.Enabled:=true;
button3.Enabled:=false;
edit3.Enabled:=false;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
IdTCPClient1.WriteLn(edit4.text+': '+edit3.Text); (* envoyer un message de type string à laconnexion courante *)
memo1.Lines.Append('Moi: '+edit3.Text);
edit3.Text:='';
edit3.SetFocus;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
//check for a message from the server
if idtcpclient1.connected= true then
if IdTCPClient1.InputBuffer.Size=0 then
begin
IdTCPClient1.ReadFromStack(True,0,False);
while IdTCPClient1.InputBuffer.Size > 0 do
memo1.Lines.Append(IdTCPClient1.ReadLn+chr(13));
end;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
memo1.Clear;
end;
procedure TForm1.Edit3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (Key=VK_return) then
begin
IdTCPClient1.WriteLn(edit4.text+': '+edit3.Text); (* envoyer un message de type string à laconnexion courante *)
memo1.Lines.Append('Moi: '+edit3.Text);
edit3.Text:='';
edit3.SetFocus;
end;
end;
end. |
Partager