Предыдущая тема :: Следующая тема |
Автор |
Сообщение |
MainGuy Гость
|
Добавлено: Пт Июн 28 2002 21:25 Заголовок сообщения: Как прервать вычисления программы на Delphi (сделать кнопку Сancel) |
|
|
Программеры, помогите.... Мне на Delphi нужно сделать следующее: Во время работы моей программы, которая производит большие и сложные вычисления, нужно сбросить задачу на эти вычисления. А если короче - когда она производит вычисления, я хочу иметь кнопку Cancel, которая бы прервала эти вычисления. Подскажите как, и приведите код какой-нибудь несложной програмки. Спасибо. |
|
Вернуться к началу |
|
|
anthony
Зарегистрирован: 21.05.2002 Сообщения: 845 Откуда: Petrozavodsk
|
Добавлено: Сб Июн 29 2002 02:11 Заголовок сообщения: Делай вычисления в отдельном потоке (TThread) (+) |
|
|
И во время вычислений проверяй значение Terminated в цикле. Как оно true - так вываливайся из потока. А на кнопку Cancel повесь че-то типа MyThread->Terminate(); Причем, желательно в цикле вычислений (в твоем потоке) еще вызывать ф-цию Application->PreocessMessages(); Ее надо вызывать из под Synchronize() на сколько я помню, хотя можешь и так попробовать... |
|
Вернуться к началу |
|
|
яяя Гость
|
Добавлено: Сб Июн 29 2002 06:45 Заголовок сообщения: Re: Делай вычисления в отдельном потоке (TThread) (+) |
|
|
>Ее надо вызывать из под Synchronize() на сколько я помню, хотя можешь и так попробовать...
Чего??? А зачем тогда отдельный thread заводить?
Либо thread без вызовов из него ProcessMessages, либо без thread-а, но с ProcessMessages. |
|
Вернуться к началу |
|
|
anthony
Зарегистрирован: 21.05.2002 Сообщения: 845 Откуда: Petrozavodsk
|
Добавлено: Сб Июн 29 2002 23:41 Заголовок сообщения: Ой! Точно! Ну млин, времени-то видел скоко было, когда писал. Вот и написал такую чушь! Ессно, замечание верное! :) (-) |
|
|
- |
|
Вернуться к началу |
|
|
|