Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Почему при выполнении цикла, форма виснет? [D7, 2000]


XTD ©   (2006-10-03 14:10:00) 

Нужно выводить в форму в Label счетчик цикла, а так как при выполнении цикла форма виснет, то вместо цифр выводится белый квадратик.
Как можно решить эту проблемку?


ProgRAMmer Dimonych   (2006-10-04 01:07:00) [1]

> [9]
Это зависит конкретного компьютера. Если он в состоянии за максимум секунду-две пройти весь цикл, то проблем не возникнет. А если нет, ...


Галинка   (2006-10-04 01:01:00) [2]

а при каком количестве проходов цикоа такое возможно? делала много раз где-то до 1000. Ничего не висло, но было видно только последнее число.


Kolan   (2006-10-03 18:37:00) [3]


> Почему при выполнении цикла, форма виснет?

Потому, что главный поток занят выполнкнием цикла и не может перерисовать форму.


Джо   (2006-10-03 18:13:00) [4]

или на другую планету.


MacroDenS   (2006-10-03 17:46:00) [5]

или вынести процедуру в отдельный поток


PZ   (2006-10-03 17:45:00) [6]

Внутри цикла вставить строчку:
 Application.ProcessMessages;


Сергей М.   (2006-10-03 14:16:00) [7]


> В каком месте вызывать Label1.Repaint?


В теле цикла в любом месте послестрочки Label.caption := ...


Джо   (2006-10-03 14:14:00) [8]

> [2] XTD ©   (03.10.06 14:13)
> Можно примерчик? В каком месте вызывать Label1.Repaint?

В теле цикла, разумеется.


XTD   (2006-10-03 14:13:00) [9]

Можно примерчик? В каком месте вызывать Label1.Repaint?


Джо   (2006-10-03 14:11:00) [10]

> Как можно решить эту проблемку?

В цикле вызывать Label1.Repaint.


Наверх

Титульная страница Поиск, карта сайта Написать письмо