Я использую Embarcadero C ++ Builder (инженер, а не программист)
Я считаю, что функция сна работает только для меня в режиме отладки, а не в режиме выпуска.Я вижу ссылки в StackOverFlow не на использование Sleep, а на использование TTimer.
Я просто хочу, чтобы мое приложение приостановилось на несколько секунд между рисованными объектами согласно Sleep (500);в приведенном ниже коде, чтобы я мог видеть каждый нарисованный объект и проверять их правильность, в противном случае происходит быстрая проверка.
DrawSelectedShape (k, Side, AddOrDeduct, Color);в приведенном ниже коде процесс, который требует приостановки
for (int n=0; n<LiquidLoads->TankBasicData->NoLiquidTypes; ++n){
for (int m=0; m<LiquidLoads->TankBasicData->NumberOfTanks[n]; ++m)
{
for (int l=1; l<LongStrengths->TotalNumberOfParts+1; ++l)
{
if (LiquidLoads->TankHeaderArray[n][m]->GhsName == LongStrengths->PartHeader[l]->PartName)
{
for (int j=0; j<LongStrengths->PartHeader[l]->NoOfComponents; ++j)
{
int k = LongStrengths->PartData[l][j]->ShapeNumber;
int Side = LongStrengths->PartData[l][j]->Side;
float AddOrDeduct = LongStrengths->PartData[l][j]->Effectiveness;
AnsiString Color = LiquidLoads->TankBasicData->LiquidTypeColor[n];
DrawSelectedShape(k,Side,AddOrDeduct,Color);
Canvas->TextOut(1200, 300+(n*25),LiquidLoads->TankBasicData->LiquidType[n]);
Sleep(300);
}
break;
}
}
} }
Приведенный выше код прекрасно работает в режиме отладки, но в режиме выпуска он работает нормально, если первые несколько фигур были нарисованы на холсте, а затем вы получаетекурсор мыши с вращающимся колесом на некоторое время, за которым следует пустой холст.
Поэтому я ищу альтернативу Sleep.
При использовании TTimer (без опыта) можно использовать событие OnTimer.и поместите код, который выполняется многократно в событии, с задержкой, связанной с интервалом Timer1, который не совсем совпадает с поиском задержки в несколько секунд в середине цикла for
Вот какмой рендеринг выглядит так:
Любой совет, наиболее ценный.