Категории каталога

Visual Basic [12]
Программируем на VB
C++ [1]
Программируем на C++
Delphi [4]
Программируем на Delphi
Информация [3]
Здесь представлена информация по языкам программирования

Форма входа

Приветствую Вас Гость!

Поиск

Друзья сайта

Наш опрос

Оцените мой сайт
Всего ответов: 84

Статистика

Oxegen Group

Каталог статей

Главная » Статьи » Программирование » Delphi

Пишем чат на Delphi
На самом деле, чат очень легко написать, но с помощю компонентов tserversocket и tclientsocket.
Хотя, чтобы оградить вас от ошибок при создании чата, рекомендую сразу скачать
рабочий исходник тут

Приступим.

Для работы этого кода, на форме должно лежать:

tlistbox-1шт.с именем mes
tbutton-4шт. с именами button1,button2,button3 и button4
tedit-4шт. c именами edit1,edit2,edit3 и edit4
tserversocket-1шт.с именем server
tclientsocket-1шт.с именем client

unit unit1;

interface

uses
windows, messages, sysutils, variants, classes, graphics, controls, forms,
dialogs,wininet, stdctrls, scktcomp, psock, nmstrm;

type
tform1 = class(tform)
button1: tbutton;
button2: tbutton;
edit1: tedit;
client: tclientsocket;
server: tserversocket;
button3: tbutton;
edit2: tedit;
label1: tlabel;
edit3: tedit;
label2: tlabel;
edit4: tedit;
label3: tlabel;
mes: tlistbox;
button4: tbutton;
procedure button1click(sender: tobject);
procedure button2click(sender: tobject);
procedure serverclientread(sender: tobject; socket: tcustomwinsocket);
procedure button3click(sender: tobject);
procedure button4click(sender: tobject);
private
{ private declarations }
public
{ public declarations }
end;

var
form1: tform1;
a:integer;
implementation

{$r *.dfm}

procedure tform1.button3click(sender: tobject);{Код для кнопки активации сервера}
begin
server.port:=strtoint(edit2.text);{Порт для прослушивания}
server.active:=true;{Активация прослушивания порта}
end;

procedure tform1.button1click(sender: tobject);{Код для кнопки коннекта}
begin
client.port:=strtoint(edit2.text);{Порт для подключения}
client.address:=edit3.text;{ip-адрес}
client.host:=edit4.text;{Имя Компа}
client.active:=true;{Подключение}
a:=0;
showmessage('Ура! Подключились!');
end;

procedure tform1.button2click(sender: tobject);{Код для кнопки отправки сообщения}
begin
client.socket.sendtext(edit1.text);{Отправка}
mes.items.strings[a]:=edit1.text;{Пишем этот текст у себя}
a:=a+1;
edit1.text:='';
end;

procedure tform1.serverclientread(sender: tobject;
socket: tcustomwinsocket);{Эта функция вызывается при получении сообщения}
begin
mes.items.strings[a]:='> '+socket.receivetext;{Записываем}
a:=a+1;
end;



procedure tform1.button4click(sender: tobject);{Код кнопки очистки ЛистБокса}
begin
mes.items.clear;
a:=0;
end;

end.


Надеюсь, этот простенький пример поможет вам в дальнейшем
при создании приложений клиент/сервер
Категория: Delphi | Добавил: Azazel213 (09.03.2009) | Автор: Антон
Просмотров: 3077 | Рейтинг: 3.4/5 |
Всего комментариев: 0
Имя *:
Email *:
Код *: