| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > программа "зависает" |
| Автор: Napalm 17.3.2004, 14:11 |
| когда работает кусок программы то прога начинает жрать немеряные ресурсы машины и визуально она "подвисает" т.е. переключение на другие задачи идет, но когда переключаюсь на свою прогу, то окно не прорисовывается... что посоветуете? пример кода while i<datasource1.DataSet.RecordCount do begin if datasource1.DataSet.Fields[18].AsInteger=0 then adotable1.InsertRecord( [datasource1.DataSet.Fields[0].AsString, datasource1.DataSet.Fields[1].AsString, datasource1.DataSet.Fields[2].AsFloat, datasource1.DataSet.Fields[3].AsFloat, datasource1.DataSet.Fields[4].AsFloat, datasource1.DataSet.Fields[5].AsFloat, datasource1.DataSet.Fields[6].AsFloat, datasource1.DataSet.Fields[7].AsFloat, datasource1.DataSet.Fields[8].AsFloat, datasource1.DataSet.Fields[9].AsFloat, datasource1.DataSet.Fields[10].AsFloat, datasource1.DataSet.Fields[11].AsFloat, datasource1.DataSet.Fields[12].AsFloat, datasource1.DataSet.Fields[13].AsString, datasource1.DataSet.Fields[14].AsDateTime, datasource1.DataSet.Fields[15].AsString, datasource1.DataSet.Fields[16].AsString, datasource1.DataSet.Fields[17].AsFloat, false]) else adotable1.InsertRecord( [datasource1.DataSet.Fields[0].AsString, datasource1.DataSet.Fields[1].AsString, datasource1.DataSet.Fields[2].AsFloat, datasource1.DataSet.Fields[3].AsFloat, datasource1.DataSet.Fields[4].AsFloat, datasource1.DataSet.Fields[5].AsFloat, datasource1.DataSet.Fields[6].AsFloat, datasource1.DataSet.Fields[7].AsFloat, datasource1.DataSet.Fields[8].AsFloat, datasource1.DataSet.Fields[9].AsFloat, datasource1.DataSet.Fields[10].AsFloat, datasource1.DataSet.Fields[11].AsFloat, datasource1.DataSet.Fields[12].AsFloat, datasource1.DataSet.Fields[13].AsString, datasource1.DataSet.Fields[14].AsDateTime, datasource1.DataSet.Fields[15].AsString, datasource1.DataSet.Fields[16].AsString, datasource1.DataSet.Fields[17].AsFloat, true]); datasource1.DataSet.Next; inc(i); end; |
| Автор: <Spawn> 17.3.2004, 14:47 |
| поставь Appliction.ProcessMessages для каждой итерации цикла |
| Автор: Napalm 17.3.2004, 16:00 |
| класная штука. можно коротко сказать что оно делает? и кстати насколько серьезно замедляет работу программы? и еще есть некоторое неудобство - то, что все компоненты которые на форме- активны и работают... ну да ладно. буду благодарен за ответы и кстати возможно ли убрать зависание тут idFTP1.Get(filename,path); |
| Автор: Pakshin A. S. 17.3.2004, 21:28 |
| А елеси замутить процессик?! Без Precess'a можно будет обойтися... |
| Автор: Vit 17.3.2004, 21:41 | ||
А это как? |
| Автор: Pakshin A. S. 17.3.2004, 21:45 |
| Ну засунуть цикл в процесс Дааа... дибилизмом попахивает |
| Автор: Vit 17.3.2004, 21:47 | ||
Именно! |
| Автор: p0s0l 17.3.2004, 23:02 |
| Pakshin A. S., наверное, хотел сказать поток, а не процесс. Хотя и с процессом можно намутить... |
| Автор: Cheba 18.3.2004, 02:08 | ||
Ты idAntyfriz на форму положил? В доках пишут, что он помогает... |
| Автор: Napalm 25.3.2004, 11:41 |
| ок, спасибо. реально помагает |