NickNNN
Junior Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Возникла большая проблема по Indy под Android XE7. Код выполняется по таймеру раз в 10 секунд: Код: for j := 1 to 100 do for i := 0 to 2 do begin ClearDT; SS.Clear; IdHTTP.Post('http://' + Servers[I] + '/index.php',DT,SS); end; | Первый проход работает корректно, делай цикл хоть до 100, хоть до 1000. На втором вызове процедуры начинает медленно работать метод Post, и где-то на 20-м запросе виснет все приложение. Аналогичный код в win32 работает без проблем. Причем уже делал все компоненты создаваемыми из кода в каждом запросе, или при создании формы - ни на что не влияет. Второй заход в процедуру делает крах приложению Я конечно напишу на QC, но сейчас возник вопрос: чем еще можно сделать POST запрос в XE7 под Android ? Добавлено: NickNNN, отбой по проблеме Indy. Проблема была в компоненте TAniIndicator, убрал с формы - все стало работать. Собрался писать в QC, вынес код отдельно, а он работает. Вставил в программу - не работает. Стал потихоньку убирать все лишнее чтобы привести к коду примера, удалил компонент индикатора и заработало Что тут скажешь, как в анекдоте: "Я х*ею, дорогая редакция. Пишет нам наша пятилетняя читательница из города ..." Добавлено: Наступил сегодня еще на одни грабли с XE7: [code] for i := 1 to 1000 do begin Application.CreateForm(TForm1, Form1); Form1.Show; Application.ProcessMessages; sleep(1000); Form1.Close; Application.ProcessMessages; sleep(1000); Button1.Text := inttostr(i); FreeAndNil(Form1); end; [code] На 30-м цикле начинаются артефакты на экране, прорисовка FMX уже не работает. Если подождать дальше, приложение падает все. Теперь нужно переделать немного логику, чтобы формы не создавались постоянно, а только при старте приложения P.S. Написал в QC |