BOOL TSteering::ExecuteNextCmd( void )
{
if (TheCmd->nFailureId)
{
MessageBox( GetFocus(), "Macro execution failed !", "Steerng", MBSTOP );
if (TheCmd)
{
// eventuell vorhandenes vorhergehendes Befehls-Objekt zerstören
// (Destruktor wird gerufen)
delete TheCmd;
TheCmd = NULL;
}
return FALSE;
}
if (TheCmd)
{
// eventuell vorhandenes vorhergehendes Befehls-Objekt zerstören
// (Destruktor wird gerufen)
delete TheCmd;
TheCmd = NULL;
}
// Function tested; Last changes 950814
if (TheCmdList[nCmdIdx].Id == Inquire)
// bInquireResult wird nirgendwo verändert
// und auch nicht initialisiert!!
// Behfehlszähler erhöhen
nCmdIdx += (bInquireResult) ? 2 : 1;
else
// Behfehlszähler erhöhen
nCmdIdx++;
switch (TheCmdList[nCmdIdx].Id)
{
case Stop:
// Kontrolle an Steuerfenster übergeben
NotifyMacroReady();
return FALSE;
case GotoLine:
// Befehlszähler auf vorgefundenen Wert setzen
nCmdIdx = TheCmdList[nCmdIdx].P1;
if((TheCmdList[nCmdIdx].Id == Stop) || (nCmdIdx > TheMacro->Length-1))
{
// Stop gefunden oder Sprungadresse hinter letztem Befehl
NotifyMacroReady();
return FALSE;
}
return TRUE;
default:
// Neuen Befehl ausführen
StartCmdExecution( TheCmdList[nCmdIdx] );
return TRUE;
}
}
Zurück zu SteeringReadyReaction()