Отправляет email-рассылки с помощью сервиса Sendsay

Программирование. Форум !!!

За 2005-07-22

Re:Перерисовка формы

В таких случаях обычно цикл засовывают в отдельный поток (rtfm msdn
"multithreading") и оттуда шлют сообщения (message) о текущем состоянии
главному окну

Номер выпуска : 4797
Возраст листа : 670 (дней)
Количество подписчиков : 525
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/406005
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-07-22 23:56:10 (#406005)

Перерисовка формы

Здравствуйте !

Есть такая проблема: в определённый момент выполнения программы, создаю форму
и покакзываю её модально. По нажатии кнопки выполняется цикл, и я в ProgressBar
вывожу состояние этого цикла (сколько процентов выполнено). Но только у меня
на протяжении всей работы цикла окно находится в "подвешенном" состоянии, и прорисовывается
только после завершения работы цикла а в ProgressBar уже прописано 100%.
Подскажите, как мне прорисовывать (обновлять) форму при каждом шаге, чтоб
ProgressBar показывал также и промежуточные проценты?

   Денис Селезнев 2005-07-22 20:42:25 (#405917)

Re[2]: STL итераторы

Hello Юрчик,

Thursday, July 21, 2005, 9:08:38 PM, you wrote:

Ю> Таким образом, через такие маздайные изобретения, как lParam и прочие, лучше

Ю> передавать указатель на итератор :-) Или указатель на структуру, в которой

Ю> есть итератор. Или еще как-нибудь, но не сам итератор.

Я думал об этом... Но если хранить указатель на итератор, то где
хранить сам итератор (он уже не может быть локальной переменной!!!)
Получается, что нужно заводить еще и список итераторов, используемых
объектом, хранить их в объекте... все это, ясное дело, не подходит,
т.к. отследить все это просто невозможно.
Реально sizeof от итератора дает 4 байта, но всегда ли это так?

Есть еще идея, но опять знаний не хватает. Хранить указатели на сами
элементы и пользоваться какими-то функциями преобразования, которые по
указателю на элемент и самой переменной контейнера формируют итератор,
указывающий на этот элемент. Есть ли такие функции?

   2005-07-22 19:10:18 (#405885)

Re: STL итераторы

Здравствуйте !

> > Итератор является указателем, а следовательно должен
> "влазить" в 4 байта.
> Неть!
> Итератор - это прежде всего объект :-)
> Он только ведет себя как указатель. Т.е. поддерживает операции * и ->
> А также ++ и прочие. Разные итераторы поддерживают разные > операции. И с


Угу. Так оно и есть.
Мало того, упоминавшийся здесь тип POSITION - также не обязан быть
указателем (это 32 битная переменная - трактуется разными функциями
по-разному). Просто удобно использовать некое подобие итератора
при программировании только с использованием API, например.
Этакий дескриптор, смысл содержимого которого, ессно, недокументирован.
Повышается уровень абстракции, что помогает писать более надежный код.

Обьявляется, кстати, так:

// abstract iteration position
struct __POSITION { };
typedef __POSITION* POSITION;

--
С уважением, Вахтуров Виктор.

Номер выпуска : 4794
Возраст листа : 670 (дней)
Количество подписчиков : 524
Адрес в архиве : http://subscribe.ru/archive/comp.soft.prog.prog/msg/405455
Получить правила : mailto:comp.soft.prog.prog-rules@subscribe.ru
Формат "дайджест" : mailto:comp.soft.prog.prog-digest@subscribe.ru
Формат "каждое письмо" : mailto:comp.soft.prog.prog-normal@subscribe.ru
Формат "читать с веба" : mailto:comp.soft.prog.prog-webonly@subscribe.ru

   2005-07-22 00:32:02 (#405455)