Тогда получается что IF в первой строчке выполняется постоянно и соответственно IF в пятой строчке тоже, и каждый раз в переменную iState записывается единица
И diropn.xDone, и diropn.xError висят в false почему-то
Так TRUE в них может появиться на один цикл и его можно не отследить. И допустим в CASE 1 будет перезаписана переменная iState, но в нее снова запишется единица в самом начале