Показать сообщение отдельно
  #5  
Старый 07.01.2017, 01:27
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,015
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

не важно где объявлена фунция. важно где она вызывается.
Еще раз.
В потоке объявляешь проперти (ну или просто public атрибут, это не принципиально, бо как поток его должен только читать).
В основной программе кидаешь на форму таймер и, например, с задержкой 250 мс (Interval) пишешь примерно такой код:
Код:
procedure TMainForm.Timer1Timer(Sender : TObject);
var
  I : Integer;
  ctrlState : Boolean;
begin
  Timer1.Enabled := False;
  ctrlState := Odd(GetKeyState(VK_CONTROL));
  // Тут проходим по всем потокам (я не знаю как ты хранишь на них ссылки) и устанавливаем свойство
  // Пусть ссылки на потоки хранятся в массиве MyThreads : Array Of TMyThread
  For I := Low(MyThreads) To High(MyThreads) Do 
    MyThreads[i].CTRL := ctrlState;
  Timer1.Enabled := True;
end;
Ответить с цитированием