Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.01.2011, 09:27   #1
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию Использование компенента Indy IdTCPServer в зависимости от версии (D7 или D2010)

Добрый день.
Для Д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; - тут ОШИБКА
на сайте ИНДИ тоже нет комментариев
кто знает, как правильно написать этот код в Д2010?
Pcrepair вне форума Ответить с цитированием
Старый 22.01.2011, 13:46   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а текст ошибки то какой?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 22.01.2011, 17:18   #3
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию

а вот это
Код:
 OpenWriteBuffer;  пишет -  не объявленный идентификатор
    WriteStream(fStream); пишет - не объявленный идентификатор
    CloseWriteBuffer; пишет - не объявленный идентификатор
РАД пишет - не объявленный идентификатор
то есть в IdTCPServer нет выше указанных методов, там (ИНДИ 10) оне как то по другомы пишуться, но вот как?
Pcrepair вне форума Ответить с цитированием
Старый 25.01.2011, 13:44   #4
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию

что, никто с Д2010 с ИНДИ не работает? Все сидят на Д7?
Pcrepair вне форума Ответить с цитированием
Старый 25.01.2011, 14:25   #5
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

начиная с инди 10 меняется строка с
Код:
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
на
Код:
TForm1.IdTCPServer1Execute(AContext: TIdContext)
вот с этим AContext и надо работать, а св-ва у них различаются
а передать стрим можно так
Код:
AContext.Connection.IOHandler.Write(fStream,fStream.Size,true);
вот здесь выкладывал проект как можно передать картинку по сети в инди 10
http://programmersforum.ru/showthread.php?t=117696

Последний раз редактировалось SERG1980; 25.01.2011 в 14:36.
SERG1980 вне форума Ответить с цитированием
Старый 25.01.2011, 14:49   #6
Pcrepair
Форумчанин
 
Регистрация: 04.01.2011
Сообщений: 260
По умолчанию

SERG1980, спасибо
но где (источник) прочитать про это?
Код:
AContext.Connection.IOHandler.Write(fStream,fStream.Size,true);
синтаксис и прочее, откуда что берется
Pcrepair вне форума Ответить с цитированием
Старый 25.01.2011, 14:57   #7
raxp
Старожил
 
Регистрация: 29.09.2009
Сообщений: 9,713
По умолчанию

...а что мешает вам выдрать нужный модуль из инди и положить его рядом с проектом и работать с ним ...или реализовать самому на сокетах.
Разработки и научно-технические публикации :: Видеоблог :: Твиттер
Radar systems engineer & Software developer of industrial automation
raxp вне форума Ответить с цитированием
Старый 25.01.2011, 15:37   #8
SERG1980
Участник клуба
 
Аватар для SERG1980
 
Регистрация: 28.03.2007
Сообщений: 1,814
По умолчанию

А прямо в хелпе по делфи можно почитать. там целый раздел есть (ну по крайней мере у меня) правда на буржуинском. А так запастись терпением и словарём ненормативной лексики

Последний раз редактировалось SERG1980; 25.01.2011 в 15:52.
SERG1980 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Indy или проблемный код? garyanikin Работа с сетью в Delphi 3 18.01.2010 16:21
INDY: IdTCPServer и IdTCPClient. Передача TStream SNUPY Работа с сетью в Delphi 2 27.12.2009 13:31
залить ячейку красным или зелным в зависимости от предыдущего значения olimpus Microsoft Office Excel 5 09.10.2008 06:05