我正在使用 Embarcadero C++ Builder(工程师而非程序员)
我发现睡眠功能只在调试模式下对我有用,在发布模式下不起作用。我在 StackOverFlow 中看到引用不使用睡眠,而是使用 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;
}
}
} }
上面的代码在调试模式下完美运行,但在发布模式下,它通过将前几个形状绘制到画布上正常工作,然后你会得到一个旋转的鼠标光标一段时间,然后是一个空白画布。
所以我正在寻找睡眠的替代品。
使用 TTimer 时(没有经验)会使用 OnTimer 事件,并将重复运行的代码放置在与 Timer1 间隔相关的延迟的事件中,这与只是在中间寻找几秒钟的延迟不太一样一个for循环
这就是我的渲染的样子:
任何建议,非常感谢。