Форум: "Основная";
Текущий архив: 2004.04.04;
Скачать: [xml.tar.bz2];
ВнизПотоки Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.031 c