Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Использование компенента Indy IdTCPServer в зависимости от версии


Pcrepair ©   (2011-01-21 16:25:00) 

Добрый день.
Для Д7 есть следующий код:
type
   procedure IdTCPServer1Execute(AThread: TIdPeerThread);
var
 Form1: TForm1;
Implementation
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
 z: string;
 fstream:TFileStream;
 X,Y:integer;
 K:TPoint;
begin
 with AThread.Connection do
 begin
  z := ReadLn;
  if SameText(Copy(z, 1, 11), 'get_screen ') then
  begin
   Log('Запрошен скриншот');
   GET_SCREEN;
   fStream := TFileStream.Create(ExtractFilePath(Application.ExeName)+'\'+'s.png',
                                 fmOpenRead + fmShareDenyNone);
   OpenWriteBuffer;
   Log('Передаем файл s.png');
   WriteStream(fStream);
   Log('Файл передан');
   CloseWriteBuffer;
   FreeAndNil(fStream);
  end;
  if SameText(Copy(z, 1, 11), 'mouse_move ') then
  begin
   z := ReadLn;
   if SameText(Copy(z, 1, 8), 'mouse_x ') then
   X:=StrToInt(Copy(z,9,4));
   z := ReadLn;
   if SameText(Copy(z, 1, 8), 'mouse_y ') then
   Y:=StrToInt(Copy(z,9,4));
   Log('Перемещение мыши');
   SetCursorPos(X,Y);
 end;

для Д2010 все немного иначе:
type
    procedure IdTCPServer1Execute(AContext: TIdContext);
и далее
procedure TForm1.IdTCPServer1Execute(AContext: TIdContext);

Вопрос:  как правильно  записать предыдущий код от Д7 для Д2010, компилятор показывает ошибку вот здесь:
OpenWriteBuffer;
   Log('Передаем файл s.png');
   WriteStream(fStream);
   Log('Файл передан');
   CloseWriteBuffer;

Непонятно, где в модуле IdTCPServer искать нужные свойства и методы (IdTCPServer.pas = 977 байт всего)


Dushel   (2011-03-10 22:00:00) [1]

Просто вместо
with AThread.Connection do
надо
with AThread.Connection.IOHandler do

другое дело как с другой стороны принять поток... если есть ответ на этот вопрос УМОЛЯЮ отпишитесь


Dushel   (2011-03-10 21:59:00) [2]

Просто вместо
with AThread.Connection do
надо
with AThread.Connection.IOHandler do

другое дело как с другой стороны принять поток... если есть ответ на этот вопрос УМОЛЯЮ отпишитесь


Anatoly Podgoretsky   (2011-01-25 14:07:00) [3]

Есть другие средства кроме Инди, вот с ними и работаем.


RWolf   (2011-01-25 14:02:00) [4]

копать надо в сторону методов параметра AContext: TIdContext, имхо.


Pcrepair   (2011-01-25 13:42:00) [5]

что, никто с Д2010 с ИНДИ не работает? Все сидят на Д7?


Pcrepair   (2011-01-22 08:52:00) [6]

просмотрел IdCustomTCPServer
но все равно неясно, что является в Д2010 аналогом выражения Д7:
OpenWriteBuffer; - ошибка
   Log('Передаем файл s.png');
   WriteStream(fStream); - ошибка
   Log('Файл передан');
   CloseWriteBuffer; - ошибка

на сайте ИНДИ тоже нет комментариев
кто знает, как правильно написать этот код в Д2010?


Германн   (2011-01-22 01:31:00) [7]

Вот ещё одна причина моей привязанности к ICS.
Эта "разношерстая" версионность Indy меня достала сразу как только мне на работе (предпредпоследней) поставили Д2006 (или Д2007, уже не помню точно) и попросили поддерживать проект ушедшего программиста.
С ICS таких проблем у меня ни разу не было.


KilkennyCat   (2011-01-22 00:56:00) [8]

и еще добавлю, что если

> Непонятно, где в модуле IdTCPServer искать нужные свойства
> и методы

то нехрен лезть в генофонд, вперед на сайт инди и читать справку.


KilkennyCat   (2011-01-22 00:54:00) [9]


> IdTCPServer.pas = 977 байт всего

зато IdCustomTCPServer 30 килобайт. нормально? или тоже мало? а если нормально, то помогло?
ваще уже, народ пошел... почти килобайт им мало, типа, в килобайте нихера не сделать... ну так прочитайте их хотя бы, 977 бай-то!


Наверх

Титульная страница Поиск, карта сайта Написать письмо