Delphi. Учимся на примерах
Шрифт:
{$R *.dfm}
procedure TForm1.FormDestroy(Sender: TObject);
begin
ServerSocket1.Active:= False; //отключаем сервер
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Active:= True; //активизировать сервер
end;
procedure TForm1.ServerSocket1ClientRead(Sender: TObject; Socket: TCustomWinSocket);
var
str, x, y: string; //полученный
текст и координаты
//указателя по X и по Y
i, j: integer; //счетчики циклов
begin
//обнуляем координаты курсора
х := ' ';
у := ' ';
str:= Socket.ReceiveText; //полученный от клиента текст
for i:=1 to Length(str) do begin
if str[i] <> '_' then x:= x + str[i]; //координаты по х
if str[i] = '_' then Break; //разделитель между
//координатами указателя
end;
for j:= i+1 to Length(str) do у:= y+str[j]; //координаты по у
//устанавливаем новые координаты указателя
SetCursorPos(StrToInt(x), StrToInt(у));
end;
procedure TForm1.FormPaint(Sender: TObject);
begin
Form1.Hide;
end;
end.
Полный код модуля клиентской программы представлен в листинге 16.2.
Листинг 16.2. Модуль клиентской программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp, StdCtrls, ExtCtrls;
type TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Client: TClientSocket;
Timer1: TTimer;
port: TEdit;
ip: TEdit;
Label1: TLabel;
Label2: TLabel;
procedure Button2Click(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
procedure ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button2Click(Sender: TObject);
begin
Timer1.Enabled:= False;//выключаем
таймер
Client.Close; //закрываем соединение
Client.Active:= False; //отключаемся от сервера
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
Client.Close; //закрываем соединение
Client.Active:=False; //отключаемся от сервера
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Client.Port:= StrToInt(port.Text); //считываем порт
Сlient.Address:= ip.text; //считываем ip-адрес сервера
Client.Active:= True; //соединяемся
Timer1.Enabled:= True; //включаем таймер
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
cur:TPoint; //хранит координаты указателя мыши
begin
GetCursorPos(cur); //узнаем координаты указателя мыши
//отправляем данные на сервер
Client.Socket.SendText(IntToStr(cur.X) +'_' + IntToStr(cur.Y));
end;
procedure TForm1.ClientConnect(Sender: TObject; Socket: TCustomWinSocket);
begin
ShowMessage('Connected!'); //показать сообщение
end;
procedure TForml.ClientDisconnect(Sender: TObject; Socket: TCustomWinSocket);
begin
ShowMessage('Disconnected!'); //сообщение при отсоединении
end;
end.
⊚ Все файлы проекта и исполняемый файл клиентской программы находятся на прилагаемом к книге компакт-диске в папке Chapter_16\Client, а файлы проекта и исполняемый файл серверной программы — в папке Chapter_16\Server.
Глава 17
Бесплатная отправка SMS через Internet
Постановка задачи
Разработать программу для бесплатной отправки SMS через Internet. Осуществлять отправку через сайты популярных украинских операторов ("UMC", "Джинс", "Киевстар"…)
Разработка формы
Для того чтобы отправить SMS, необходимо знать номер телефона, на который мы будем отправлять сообщение, оператора этого номера и, естественно, — само отправляемое сообщение.
Поделиться с друзьями: