![]() |
|
|
|
|
#1
|
|||
|
|||
|
Подскажите пожалуйста как реализовать потоки в делфях (полный ламер, если можно поподробнее)
Проблема в том что пока идет процедура просчета, программа не отвечает и нельзя даже нажать кнопочку санцел, которая прерывает работу процедуры. По идее с потоками должно получится, или может есть какой либо иной способ, помогите пожалуйста! |
|
#2
|
||||
|
||||
|
Вот суперский документ по потокам _hххp://decoding.narod.ru/book/doc/synchronization.zip
Имхо больше ничего и не нужно знать. И годиться не только для делфи ![]() |
|
#3
|
|||
|
|||
|
Цитата:
|
|
#4
|
||||
|
||||
|
Цитата:
Что значит "ссылка не на Инет ресурс". А на что? Или ты не догадался заменить _hххp на http. Или вообще выкинь из строки с адресом это - _hххp://, и все будет ок. Ну а если скачать не сможешь, пиши на decoding@narod.ru, вышлю. Цитата:
Если внутри цикла надо обрабатывать различные действия пользователя, нужно вставить внутрь цикла Application.ProcessMessages, и никакие потоки не нужны. Вот пример: Код:
begin
// бесконечный цикл
while true do
begin
{
любые действия
}
Application.ProcessMessages;
if ( условие_выхода ) then Break;
end;
// продолжаем работу после цикла
end;Последний раз редактировалось Decoding, 03.06.2006 в 21:23. |
|
#5
|
||||
|
||||
|
Цитата:
2 bravo насмешил :beer: |
|
#6
|
||||
|
||||
|
Цитата:
Никогда не говори "никак"!!! Sleep() можно реализовать ручками, например так: Код:
var
t: Cardinal;
begin
{
Делай что надо
}
// Потом Sleep на секунду
t := GetTickCount;
while GetTickCount-t < 1000 do
Application.ProcessMessages;
{
И спокойно работай дальше
}
end;И никакой поток тебе не нужен. Последний раз редактировалось Decoding, 04.06.2006 в 19:47. |