Delphi. Учимся на примерах | страница 68
>//координаты по у
> //устанавливаем новые координаты указателя
> SetCursorPos(StrToInt(x), StrToInt(у));
>end;
При получении текста мы считываем в отдельные переменные значение координат указателя по X и по Y. Затем изменяем координаты на те, которые только что получили от клиента.
Теперь программа полностью готова, и для того чтобы протестировать ее, необходимо иметь хотя бы два компьютера, объединенные в локальную сеть или подключенные к Internet.
Полный исходный код модулей
Полный код модуля серверной программы представлен в листинге 16.1.
>unit Unit1;
>interface
>uses
> Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ScktComp;
>type TForm1 = class(TForm)
> ServerSocket1: TServerSocket;
> procedure FormDestroy(Sender: TObject);
> procedure FormCreate(Sender: TObject);
> procedure ServerSocketlClientRead(Sender: TObject; Socket: TCustomWinSocket);
> procedure FormPaint(Sender: TObject);
>private
> { Private declarations }
>public
> { Public declarations }
>end;
>var
> Form1: TForm1;
>implementation
>{$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.
>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);