⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u_chat.pas

📁 it is a delphi application for a chat in a local netowrk between friends
💻 PAS
字号:
UNIT  U_chat;


INTERFACE

uses
  SysUtils,crt;

const nb_max_client =20;
      nb_max_msg    =100;

type T_Client = record
       pseudo : string[5];
        mdp    : string[4];
      end{record};

     T_message = record
        pseudo   : string[5];
        msg      : string[49];
        heure : tdatetime;
        color : byte;
        end{record};

     fichier_client = file of T_Client;
     fichier_msg = file of T_message;
     T_tab_client = array[0..nb_max_client] of T_Client;
     T_tab_message = array[0..nb_max_msg] of T_message;
     T_les_messages = record
             nb_msg : integer;
             les_messages : T_tab_message;
             end{record};


var objet_client : fichier_client;
    objet_msg   : fichier_msg;

    client : t_client;
    msg    : T_message;



procedure initialisation;
procedure ecrir_message(msg : T_message);
function fichier_en_tableau :t_les_messages;
procedure afficher_chat;
procedure saisir_message(var msg : T_message);
procedure menu;
procedure charger(longueur,positionx,positiony : integer);
procedure un_rectangle(x1,y1,x2,y2 : integer);
procedure efface_ecran;





implementation

  procedure efface_ecran;
var j : byte;
begin

     for j:= 0 to 80 do begin
       gotoxy(0,j);writeln('                                                                                 ');
       gotoxy(1,1);
     end {for};
end{efface_ecran};

  procedure charger(longueur,positionx,positiony: integer);
  var i,pourcent : integer;
  begin

    gotoxy(positionx,positiony-1);write('Chargement...');
    gotoxy(positionx,positiony);write(#201);
    for i:=positionx to longueur do begin
      gotoxy(i+1,positiony);write(#205);
    end {for};
    gotoxy(longueur+1,positiony);write(#187);
    gotoxy(longueur+1,positiony+1);write(#186);
    gotoxy(positionx,positiony+1);write(#186);

    for i:=positionx to longueur do begin
      gotoxy(i+1,positiony+2);write(#205);
    end {for};
    gotoxy(positionx,positiony+2);write(#200);
    gotoxy(longueur+1,positiony+2);write(#188);


    for i:=1 to longueur-positionx-2 do begin
      gotoxy(i+positionx+1,positiony+1);write(#219);
      pourcent:=((i+positionx+1)*100 div (longueur-1));
      gotoxy((longueur-positionx) div 2,positiony+1);write(pourcent,'%');
      delay(100);
   end;
    gotoxy(positionx,positiony-1);write('Chargement termine !');

  end{charger};

  procedure un_rectangle(x1,y1,x2,y2 : integer);
  type point = record
             x : byte;
             y : byte;
             end {record};
  var A,B : Point;
      i : integer;

  begin
    A.x := x1;
    A.y := y1;

    B.x := x2;
    B.y := y2;
//--------segment[AC]---------//
//au point A
   gotoxy(A.x,A.y);write(#201);
//entre A et C de coordonn閑 (B.x , A.y)
   for i:=A.x+1 to B.x-1 do begin
     gotoxy(i,A.y);write(#205);
   end{for};
//---------segment[CB]--------//
//au point C(B.x , A.y)
    gotoxy(B.x,A.y);write(#187);
//entre C et B
  for i:=A.y+1 to B.y-1 do begin
    gotoxy(B.x,i);write(#186);
  end{for};
//---------segment[BD]--------//
//au point B(B.x , B.y)
  gotoxy(B.x,B.y);write(#188);
//entre B et D
  for i:=B.x-1 downto A.x+1 do begin
    gotoxy(i,B.y);write(#205);
  end{for};
//---------segment[DA]--------//
//au point D(A.x , B.y)
  gotoxy(A.x,B.y);write(#200);
//entre D et A
  for i:=B.y-1 downto A.y+1 do begin
   gotoxy(A.x,i);write(#186);
  end{for};
  end {un_rectangle};




procedure initialisation;
begin
assign(objet_msg,'le_salon.jul');
assign(objet_client,'les_clients.jul');

rewrite(objet_client);
rewrite(objet_msg);

close(objet_client);
close(objet_msg);
end{initialisation};

procedure ecrir_message(msg : T_message);
begin
  assign(objet_msg,'le_salon.jul');
  reset(objet_msg);
  seek(objet_msg,filesize(objet_msg));
  write(objet_msg,msg);
  close(objet_msg);

end{ecrir_message};

function fichier_en_tableau :t_les_messages;
var  resultat : t_les_messages;
     msg1 : T_message;
     i : integer;
begin
  assign(objet_msg,'le_salon.jul');
  reset(objet_msg);
  i:=0;
  resultat.nb_msg:=0;
  while not(eof(objet_msg)) do begin
  seek(objet_msg,i);
  read(objet_msg,msg1);
  resultat.les_messages[i]:=msg1;
    inc(resultat.nb_msg);
  inc(i);

  end{while};
  fichier_en_tableau:=resultat;
  close(objet_msg);

end{fichier_en_tableau};
procedure afficher_chat;
var tab_msg_recuperes:T_les_messages;
   i,j : integer;
begin

  clrscr;
  clrscr;
  repeat

  j:=0;
  tab_msg_recuperes:=fichier_en_tableau;
   un_rectangle(10,5,80,30);


  for i :=tab_msg_recuperes.nb_msg-20 to  tab_msg_recuperes.nb_msg  do begin
  gotoxy(11,6+j);write('                                        ');
  gotoxy(11,6+j);textcolor(tab_msg_recuperes.les_messages[i].color);write(timetostr(tab_msg_recuperes.les_messages[i].heure),
           ':',tab_msg_recuperes.les_messages[i].pseudo,'> ',
           tab_msg_recuperes.les_messages[i].msg);
  inc(j);
  textcolor(15);
  end{for };
  delay(1000);
  until TRUE<>TRUE;
end{afficher_chat};

procedure saisir_message(var msg : T_message);

var
    i : byte;
begin
  clrscr ;
  clrscr ;
  write('pseudo : ');readln(msg.pseudo);
  for i:=1 to 14 do begin
  gotoxy(20,4+i);textcolor(i);writeln(i,' jules');
  end ;
  textcolor(15);
  writeln('quelle couleur voulez-vous utiliser dans le salon [1 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -