Регистрация
23 Мар 2013
Сообщения
88
Репутация
0
Спасибо
0
Монет
0
Можно ли отдельные элементы формы, поместить в отдельный поток??? Например, у нас есть главный поток (форма), мы создали отдельный поток для вычислений.... Но в вметоде Execute второго потока, если нам нужно изменять значения в графических компонентах, мы должны пользоваться функцией Synchronize(), что равносильно выполнению действия (вывод в поле мемо) в главном потоке... Так вот... Выводиться в поле мемо будет ну ооооооочень много чего... Суть такая: во втором потоке вычесление - вывод в поле мемо, вычисление - вывод результата и т. д. Если я запускаю второй поток, то на кнопку на форме (остановить поток), я нажать не могу, виснет падла, но оно и понятно, всё в главном потоке выполняется... Нельзя ли как то компонент мемо вынести в отдельный поток, чтобы он заполнялся непрерывно, а основная форма не висла??? Спасибо!!!
 
Компонент - очевидно нельзя. Компонент - часть формы, форма может отрисовываться только как единое целое. Но заполняешь ты не Memo, а Memo.Strings. Который имеет другой тип. Создавай отдельный TStringList, заполняй его в своем потоке и время от времени копируй его в Memo.Strings. Кстати, даже в однопоточном приложении такая схема ой как бережет нервы пользователя.
 
Назад
Сверху