Series1->Clear(); dt_last = Now(); for (i = 0; i 400; i++) { // Ожидание 20 мс while (MilliSecondSpan(Now(), dt_last) 20){}; dt_last = Now(); // расчет и отрисовка x[i] = i*Pi/200; y[i] = sin(x[i]); Series1->AddXY(x[i],y[i],"",clRed); Application->ProcessMessages(); }
while (MilliSecondSpan(Now(), dt_last) 20){};dt_last = Now();... тут вызов обработчика через Synchronize
int i; func(){// здесь на график выводится i-я точка...i++;}
Synchronize(func);
t = Now();while (MilliSecondSpan(Now(), t) 20){};
void __fastcall MyTime::Execute(){ t = Now(); while (!Terminated) { while (MilliSecondSpan(Now(), t) 20){}; t = Now(); Synchronize(func); }}
func(){ x[i] = i*Pi/200; y[i] = sin(x[i]); Series1->AddXY(x[i],y[i],"",clRed); i++; if (i >= 400) Thread_form->Suspend(); // ну или как-то еще прекращаем набирать данные}