bool TTrailBoard::playGame( TForm *caller, int gameid ) { m_startTime = Now(); game->m_returnDataHeader.partid= L"0"; game->m_returnDataHeader.sessionid= L"0"; game->m_returnDataHeader.sectionid= L"hm05"; String startDate = m_startTime.FormatString("yyyy-mm-dd") + "T" + m_startTime.FormatString("hh:mm:ss"); game->m_returnDataHeader.dateStarted=startDate; //L"2013-08-30T10:16:30:000"; game->m_returnDataHeader.abandon= 0; game->m_returnDataHeader.introelapsed=0; //Intro elasped time game->m_returnDataHeader.totelapsed=0; game->m_returnDataHeader.practiceaelapsed=0; game->m_returnDataHeader.practiceaerrors=0; game->m_returnDataHeader.practicebelapsed=0; game->m_returnDataHeader.practiceberrors=0; game->m_returnDataHeader.partaelapsed=0; game->m_returnDataHeader.partaerrors=0; game->m_returnDataHeader.partbelapsed=0; game->m_returnDataHeader.partberrors=0; resetBoard(); game->initGame(); Show(); panel_abandon->Visible = true; caller->Hide(); if (results) delete results; game->run( ); while ( game->isRunning() ) // WAIT FOR END SIGNAL { Application->ProcessMessages(); } panel_abandon->Visible = false; game->m_returnDataHeader.totelapsed = MilliSecondsBetween(Now(),m_startTime); //milliseconds elapsed since 1 January 1970 std::stringstream timeString; timeString << game->getRunTime(); /* if (!game->wasAbandoned()) fm_tmessage->msgOk("Congratulations!\n\nYou completed the test in " + timeString.str() + " deci-seconds " + "\n\nWell done.","WHOOOT!", POPUP_COLOUR ); */ extractResults(); /* std::string resultString = results->serializeOut(); if (SaveTextFileDialog->Execute()) { int iFileHandle = FileCreate(SaveTextFileDialog->FileName); if (iFileHandle > 0) FileWrite(iFileHandle,(void*)AnsiString(resultString.c_str()).c_str(),resultString.length()); FileClose(iFileHandle); } */ caller->Show(); Hide(); return( true ); }
TInstantOperationVisualizer::~TInstantOperationVisualizer() { TDateTime Time = Now(); int64_t Duration = MilliSecondsBetween(Time, FStart); const int64_t MinDuration = 250; if (Duration < MinDuration) { ::Sleep(static_cast<uint32_t>(MinDuration - Duration)); } }
//--------------------------------------------------------------------------- __fastcall TInstantOperationVisualizer::~TInstantOperationVisualizer() { TDateTime Time = Now(); __int64 Duration = MilliSecondsBetween(Time, FStart); const __int64 MinDuration = 250; if (Duration < MinDuration) { Sleep(static_cast<unsigned int>(MinDuration - Duration)); } }