Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Общие вопросы > Сделал я поток и что дальше


Автор: МАХИМ 5.7.2006, 11:45
как мне использовать его в программе если процедура в потоке, и как можно отследить выполняется она вобще или нет.

Добавлено @ 11:54 
Я ставил TThreadProc := EnumThread.Create(False); ни чего не происходит. 

Автор: Alexeis 5.7.2006, 11:54
Цитата(МАХИМ @  5.7.2006,  10:45 Найти цитируемый пост)
 мне использовать его в программе

Делфийский TThread
Цитата(МАХИМ @  5.7.2006,  10:45 Найти цитируемый пост)
 как можно отследить выполняется она вобще или нет. 

В процедуре написать
Код

Showmessage('Выполняется!');

 

Автор: Sunr1se 5.7.2006, 11:54
Советую почитать вот это:
http://forum.vingrad.ru/index.php?showtopic=60076 

Автор: Guedda 5.7.2006, 12:53
Цитата(alexeis1 @  5.7.2006,  12:54 Найти цитируемый пост)
В процедуре написать
Выделить всёкод Pascal/Delphi
1:
    
Showmessage('Выполняется!');



Так не получится... Ошибку выдаст...

В потоке пользуйся MessageBox 

Автор: Alexeis 5.7.2006, 12:57
Guedda, А в чем разница smile  
Я так делал, и вроде работало! 

Кажется я понял - при выполнении showmessage идет потоконебезопастное обращение к данным формы, что может привести к проблемам

Добавлено @ 13:05 
MessageBox - это прямая windows функция которая не имеет обращении к данным главного потока. 

Автор: МАХИМ 5.7.2006, 13:14
да да к стати, совтчик smile 
Работать с потоком надо создать property что ли, я тут в статье на vingrad про потоки увидел.. 

Автор: Alexeis 5.7.2006, 13:30
Цитата(МАХИМ @  5.7.2006,  13:14 Найти цитируемый пост)
 надо создать property что ли

Минимум это перекрыть Execute (метод tthread) в насленике и затем в програме выполнить его для объекта вашего класса наследника.
Все что будет в нем все запустится в отдельном потоке.
  

Автор: Guedda 5.7.2006, 13:32
Цитата(МАХИМ @  5.7.2006,  14:14 Найти цитируемый пост)
Работать с потоком надо создать property что ли, я тут в статье на vingrad про потоки увидел..  

Ты про что?
Создать поток можно так:
Код

MyThread := TMyThread.Create(false);

=)

Можно его описывать непосредственно в отдельном модуле, либо в разделе interface любого из модулей программы... 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)