| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Поток блокирует форму |
| Автор: str_killer 28.4.2009, 13:43 |
| Delphi 2009 имеется поток, в нем происходит заполнение и обработка массива данных через OLE, ну и соответственно в Label выводится инфа по выполненной работе и кнопка на форме, которая должна останавливать поток по нажатию если я вызываю метод через Synchronize, то доступ к событию нажатия кнопочке я соответственно не получаю, пока поток не отработает если же вызываю без Synchronize, не работают события OLE объектов как сделать чтобы можно было получить этот доступ? PS: прочитал много литературы. но так ничего и не понял, хотелось бы пример))) |
| Автор: kami 28.4.2009, 19:42 |
| Через Synchronize делать ТОЛЬКО вывод в Label информации. Не более того. Иначе пропадает весь смысл дополнительного потока - зачем он нужен, если весь код все равно выполняется в основном? С остальным (остановкой потока по нажатию кнопки) - проблематичнее и зависит от кода потока. Хотя, в любом случае в потоке необходимо систематически анализировать состояние св-ва Terminated и если True - прекращать работу потока. Код нажатия на кнопку прост: myThread.Terminate; Все. Добавлено через 1 минуту и 8 секунд Скорее всего - Фленовы, Фараоновы и Архангельские? Выбросьте их. Они хороши только для самого начала - научиться батонокидательству. |