Indy Tcpserver

Тема в разделе "Delphi - Сети", создана пользователем Frodo, 15 апр 2006.

Статус темы:
Закрыта.
  1. Frodo

    Frodo Гость

    Задача: при получении команды от клиента сервер должен открыть в ворде документ.

    Код (Text):
    uses
    ...Word2000,IdComponent, IdTCPServer....

    procedure TMainForm.IdTCPServer1Execute(AThread: TIdPeerThread);
    var
    Ss:String;
    DocName:OleVariant;
    begin
    DocName:='C:\boot.doc';
    try
    with AThread.Connection do
    begin
     Ss:=ReadLn();
     if Ss='Get' then
     begin
      WordApplication1.Documents.Open(DocName,EmptyParam, EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
      WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
     end;
    ....
    Проблема такая что при подключении клиента к серверу он создает поток.При получении команды от клиента сервер пытается внутри потока запустить еще один поток для открытия вордовского документа.

    Как на время остановить или закрыть поток созданный сервером и передать управления для работы с вордом
     
  2. zubr

    zubr Гость

    Код (Text):
    AThread.Suspend;//останавливаем поток
     WordApplication1.Documents.Open(DocName,EmptyParam, EmptyParam, EmptyParam,EmptyParam,EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam, EmptyParam);
     WordDocument1.ConnectTo(WordApplication1.ActiveDocument);
    AThread.Resume;//продолжаем выполнение потока
     
  3. Frodo

    Frodo Гость

    попробовал но никаного эффекта. все что следует после

    Код (Text):
    AThread.Suspend;
    просто не выполняется. Может это какой то глюк Indy 8 (у меня эта версия стоит)

    Можно ли из вне (не из OnExecute) вызвать Suspend? и если можно то как?
     
  4. Barmutik

    Barmutik Гость

    Лучше из потока ставить Ваше задание на открытие документа к примеру в основном потоке приложения и уже потом оттуда его брать и з очереди заданий и открывать...

    А с другой стороны в чём проблема что Вы из потока клиента создаёте ещё один поток ?
     
Загрузка...
Похожие Темы - Indy Tcpserver
  1. slavon-x86
    Ответов:
    3
    Просмотров:
    11.762
  2. konstin
    Ответов:
    2
    Просмотров:
    737
  3. erhe
    Ответов:
    7
    Просмотров:
    2.730
  4. Shouldercannon
    Ответов:
    0
    Просмотров:
    628
  5. Shouldercannon
    Ответов:
    0
    Просмотров:
    498
Статус темы:
Закрыта.

Поделиться этой страницей