Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

Потоки   Найти похожие ветки 

 
MIKL_b   (2004-03-16 13:20) [0]

Вощем я делаю прогу, которая работает с текстом (В данном случае вынимает из него все E-Mail), так вот сделал мемо1, в которое результаты вставляются, сделал прогресс бар, который показует сколько строк считало\скоко осталось и наконец сделал Label1, в которой должно быть отображено это соотношение(строк считало\скоко осталось), образца: "5\330". Вот тут проблема: я сделал отдельный поток, в котором Label1 синхронится, но изменяется она только в конце процедуры, то есть когда весь файл уже считан и обработан. А надо чтоб во время работы она менялась! Заранее спасибо.


 
Erik ©   (2004-03-16 13:28) [1]

Зачем отдельнай поток просто сделай PostMessage а в форме лови. Незабудь на всякий случай Application.Poscessmessage;


 
Digitman ©   (2004-03-16 13:33) [2]


> сделал отдельный поток, в котором Label1 синхронится


и это все, чем занят этот поток ?!


 
Луарвик   (2004-03-16 13:40) [3]

2Erik А можно подробней? Статьи какие-нить...
2Digitman Вощем да. А что мало?


 
MIKL_b   (2004-03-16 13:48) [4]

Тьфу! Запутался в именах своих...
Луарвик  -эт я


 
Digitman ©   (2004-03-16 13:58) [5]


> Луарвик   (16.03.04 13:40) [3]


> Вощем да. А что мало?


не то слово !)
на кой шут тогда этот поток нужен, если все, что он делает, с успехом можно сделать и в основном потоке ... более того, задача манипуляции визуальными св-вами VCL-контролов (имеющих прямое отношению к виз.интерфейсу пользователя) - это задача именно основного код.потока .. дополнительный же код.поток требуется  в 1-ю очередь тогда, когда необходимо выполнить сложные и/или длительные вычисления параллельно с другими кодовыми потоками (в дан.случае - с основным, который в любой момент времени должен реагировать на пользовательский ввод/вывод, принимать и обрабатывать оконные сообщения, обновлять виз.интерфейс и т.д. и т.п.)


 
Digitman ©   (2004-03-16 13:58) [6]


> Луарвик   (16.03.04 13:40) [3]


> Вощем да. А что мало?


не то слово !)
на кой шут тогда этот поток нужен, если все, что он делает, с успехом можно сделать и в основном потоке ... более того, задача манипуляции визуальными св-вами VCL-контролов (имеющих прямое отношению к виз.интерфейсу пользователя) - это задача именно основного код.потока .. дополнительный же код.поток требуется  в 1-ю очередь тогда, когда необходимо выполнить сложные и/или длительные вычисления параллельно с другими кодовыми потоками (в дан.случае - с основным, который в любой момент времени должен реагировать на пользовательский ввод/вывод, принимать и обрабатывать оконные сообщения, обновлять виз.интерфейс и т.д. и т.п.)


 
MIKL_b   (2004-03-16 14:04) [7]

Ну ладно, рад что все можно в основном потоке замутить. Ну как именно?


 
Digitman ©   (2004-03-16 14:21) [8]

for i:= ... to ... do
begin
... //чего-то там творишь со своим Memo
ProgressBar.Position := ... //такая-то позиция
Label.Caption := ... //такая-то подпись
Application.ProcessMessages; // собственно обработка очереди сообщений, в которой на этот момент уже есть сообщения, требующие обновления виз.контролов
end;


 
MIKL_b   (2004-03-16 14:40) [9]

Тоесть просто Application.ProcessMessages вставить надо?


 
Digitman ©   (2004-03-16 14:44) [10]

угу... "вставить" .. или "замутить" ... как твоему глазу/уху приятней..
те же .., но вид сбоку)

ларчик-то , оказывается, просто открывался)
а ты в дебри полез, с доп.потоками)


 
MIKL_b   (2004-03-16 14:48) [11]

Все работает! Спасибо Digitman!!!



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.428 c
1-1079592884
sav
2004-03-18 09:54
2004.04.04
Процессы и потоки


1-1079674554
Nonamik
2004-03-19 08:35
2004.04.04
Динамический массив


14-1078345492
lak-b
2004-03-03 23:24
2004.04.04
вопросы хтмл


7-1072072538
Ilkhom
2003-12-22 08:55
2004.04.04
Лицинзионные программы


14-1079092146
Awersom
2004-03-12 14:49
2004.04.04
Чат