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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2013, 18:52   #1
qZED
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 26
По умолчанию Дополнительный поток TThread

Дано: Главная форма, компонент TComport. В ком порте считываются данные, если приходит определенная строка строка - нужно создать еще один поток и считывать из другого ком порта до тех пор пока в первом ком порте не придет определенная строка.

Код:
    RecordThread := TRecordWAVE.Create(True); 
    RecordThread.Priority := tpNormal;         
    RecordThread.FreeOnTerminate := True; 
    RecordThread.idModule := id;
    RecordThread.Resume;

procedure TRecordWAVE.Execute;
var
  Buf : array [1..320] of Char;
  Buffer : String;
  Port : TComPort;
  S : String;
begin
  ReadBuffer := '';
  Buffer := '';
  Port := TComPort.Create(frmMain);
  Port.Port := 3;
  Port.Open;

  repeat
        FillChar(Buf, 320, 0);
        Port.Read(Buf, 320);
        Buffer := Buffer + Buf;
        Application.ProcessMessages;
        Sleep(20);
  until [Переменная которая считывается в первом COM порту];

  Port.Close;
end;
Помогите реализовать...
qZED вне форума Ответить с цитированием
Старый 05.06.2013, 20:02   #2
qZED
Пользователь
 
Регистрация: 13.05.2009
Сообщений: 26
По умолчанию

Цитата:
Сообщение от qZED Посмотреть сообщение
Дано: Главная форма, компонент TComport. В ком порте считываются данные, если приходит определенная строка строка - нужно создать еще один поток и считывать из другого ком порта до тех пор пока в первом ком порте не придет определенная строка.

Код:
    RecordThread := TRecordWAVE.Create(True); 
    RecordThread.Priority := tpNormal;         
    RecordThread.FreeOnTerminate := True; 
    RecordThread.idModule := id;
    RecordThread.Resume;

procedure TRecordWAVE.Execute;
var
  Buf : array [1..320] of Char;
  Buffer : String;
  Port : TComPort;
  S : String;
begin
  ReadBuffer := '';
  Buffer := '';
  Port := TComPort.Create(frmMain);
  Port.Port := 3;
  Port.Open;

  repeat
        FillChar(Buf, 320, 0);
        Port.Read(Buf, 320);
        Buffer := Buffer + Buf;
        Application.ProcessMessages;
        Sleep(20);
  until [Переменная которая считывается в первом COM порту];

  Port.Close;
end;
Помогите реализовать...
Реализовал.. как удалить тему?
qZED вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Принудительно уничтожить поток(TThread) с корректным высвобождением памяти Pcrepair Общие вопросы Delphi 3 05.06.2013 01:49
TTHread, Как перезапустить поток, без его уничтожения? Человек_Борща Общие вопросы Delphi 20 21.08.2012 09:26
Пауза/продолжить поток TThread одной кнопкой Человек_Борща Общие вопросы Delphi 3 29.10.2010 00:55
Как закрыть дополнительный поток из основного? Crystallon Общие вопросы Delphi 6 12.10.2010 14:22
Отобразить рабочий поток (TThread) NervniiJ Общие вопросы Delphi 0 10.01.2010 17:34