|
Trouver une ressource
Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !
CHAT DISCUTER EN RESEAU LOCAL ENTRE AMIS
Information sur la source
Description
Ce programme vous permet de créer un salon de chat entre deux ordinateurs ou plusieurs à condition qu'il y est un serveur.vous mettez les programmes et les fichiers necessaires dans un repertoire qu'il faudra partager et autoriser la modification .(ou specialement le fichier 'le_salon.jul' si c possible). sinon vous ne pourrez pas mettre à jour les messages envoyés. et c'est tout! il comprend deux parties: - discuter qui sert à envoyer les messages au salon (dans fichier "le_salon.jul" qui se trouve au niveau du serveur) - afficher_messages qui sert à afficher les messages du salon comme son nom l'indique. c'est tres pratique et pas compliqué à utiliser. bon Chat JuluXP!
Source
- 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ée (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 à 14]? : ');
- readln(msg.color);
- writeln;
- write('Ecrivez oter message ''Q''pour quitter bon chat ! ');
-
-
- repeat
- un_rectangle(10,30,60,40);
- gotoxy(11,31);write(' ');
- gotoxy(11,31);readln(msg.msg);
- msg.heure:=time;
- if (msg.msg <> 'q') and (msg.msg <> 'Q') then begin
- ecrir_message(msg);
- end else begin
- msg.heure:=time;
- msg.msg:='A QUITTE LE SALON';
- msg.color:=15;
- ecrir_message(msg);
- end{if};
- until msg.msg='A QUITTE LE SALON';
- end;
-
- procedure menu;
- label la;
- var reponse : char;
- begin
- efface_ecran ;
- un_rectangle(5,5,40,20);
- un_rectangle(5,7,40,20);
- gotoxy(8,6);write('MENU PRINCIPAL');
- gotoxy(7,9);write('1 - CHAT ');
- gotoxy(7,11);write('2 - AFFICHER LE SALON ');
- gotoxy(7,13);write('3 - QUITTER');
- gotoxy(4,24);write('VOTRE CHOIX [1,2,3]');
- la: reponse:=readkey;
- case reponse of
- '1' : saisir_message(msg);
- '2' : afficher_chat;
- '3' : exit;
- else goto la ;
- end {case};
-
- end{MENU};
-
-
- end.
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ée (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 à 14]? : ');
readln(msg.color);
writeln;
write('Ecrivez oter message ''Q''pour quitter bon chat ! ');
repeat
un_rectangle(10,30,60,40);
gotoxy(11,31);write(' ');
gotoxy(11,31);readln(msg.msg);
msg.heure:=time;
if (msg.msg <> 'q') and (msg.msg <> 'Q') then begin
ecrir_message(msg);
end else begin
msg.heure:=time;
msg.msg:='A QUITTE LE SALON';
msg.color:=15;
ecrir_message(msg);
end{if};
until msg.msg='A QUITTE LE SALON';
end;
procedure menu;
label la;
var reponse : char;
begin
efface_ecran ;
un_rectangle(5,5,40,20);
un_rectangle(5,7,40,20);
gotoxy(8,6);write('MENU PRINCIPAL');
gotoxy(7,9);write('1 - CHAT ');
gotoxy(7,11);write('2 - AFFICHER LE SALON ');
gotoxy(7,13);write('3 - QUITTER');
gotoxy(4,24);write('VOTRE CHOIX [1,2,3]');
la: reponse:=readkey;
case reponse of
'1' : saisir_message(msg);
'2' : afficher_chat;
'3' : exit;
else goto la ;
end {case};
end{MENU};
end.
Sources du même auteur
Sources de la même categorie
Sources en rapport avec celle ci
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Autoscrool sur une listBox [ par billou_13 ]
Voila mon petit problème qui ne doit pas en être un gros.J'ai programmé un chat en delphi et pour conserver les messages (c'est a dire la liste de mes
Créer un chat [ par sLaYeR31 ]
Bonjour, je voudrais créer un chat PC à PC en rézo, mai je ne c pas quel composant utiliser et ou les télécharger...Merci d'avance
Utilisation d'une Base de donnée sur un réseau local [ par guilhemrostain ]
Bonjour, je vous expose directement mon problème : Pour mon application sous Delphi 7 j'utilise une connection à une base de donnée. J'ai testé avec u
Installer le BDE uniquement sur le serveur ? [ par orelien ]
Bonjour,J'aimerais mettre en place mon programme (base paradox) sur un réseau, accessible avec un raccourci réseau par chaque utilisateur. Si j'instal
CONNEXION RESEAU [ par Narcissus ]
Bonjour à tous.Voila je suis débutant en programmation, et je voulais savoir si quelqu'un sait comment activer/désactiver la connexion au réseau loca
Access en réseau ? [ par molene34 ]
Molene.J'ai crée une basse de données pour la gestion des heures. Elle fonctionne très bien en mono-poste, par contre lorsque je souhaite y entrer des
favoris réseau et cible [ par toutptit ]
Bonjour, Avec l'instruction Shelltreeview.path, quand je pointe sur un favori réseau je récupère un chemin du type : c:\Documents and Settings\(nomuti
nom des ordinateurs [ par DREAMER2208 ]
ba voila, j'essaye de faire un ti progr qui permet d'agir sur les pc d'un réseau local. Au début jpensais mettre dans les items d'un Combobox tout les
Accèder à une ressource réseau via un TService [ par informia ]
Bonjour,Voila, je viens de développer un service windows dans lequel j'aimerais accéder à une ressource réseau (base de donné
|
Téléchargements
Logiciels à télécharger sur le même thème :
|