Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Проблема отрисовки ProgressBar в XP ! [D7, WinXP]


VID ©   (2005-12-02 12:29:00) 

Ситуация такова: Есть просто приложение - форма, кнопка на ней и ProgressBar.
При нажатии кнопки, выполняем какой нибудь цикл, внутри которого происходит инкрементирование переменной i: Integer, и следовательно постоянно меняем значение Position у ProgressBar'a.

Запускаем приложение, нажимаем кнопку, затем переключаемся на другое приложение, и снова возвращаемся к нашему приложени. И...
- Если приложение запущено в XP (sp2) из-под дельфи, то прогресбар продолжает нормально отрисовываться.
- Если приложение запущено в XP не из-под дельфи, а просто так, то ничего уже не прорисовывается, все выглядит зависшим, хотя процесс конечно же продолжает свою работу.- Если приложение запущено в Win98 или Win2000 (не важно из-под дельфи или нет), то прогресбар нормально отрисовывается.

Кто-нибудь знает, что делать и как мне бороться с этим глюком, связанным с XP ?

PS: Тестировалось на XP SP2, т.к. просто XP или  XP SP1 у меня не было.


alex_***   (2005-12-02 18:04:00) [1]

хотелось бы применить какое-нить менее кардинальное решение.

Application.ProcessMessages() прямо жесть. Меняет ситуацию кардинально


alex_***   (2005-12-02 18:02:00) [2]

какие ужасные винды.... не хотят отрисовывать ProgressBar!! Билли специально зашил в проверку на пргорамму писанную на Дельфи, чтоб переходили на VS


ДНО   (2005-12-02 16:24:00) [3]

// Помимо того, что ничего не отрисовывается, это приложение можно еще и передвигать за заголовок.
заголовками и "тасканиями" ведает твоя windows, так что все в порядке вещей.

//С ProcessMessages заморачиваться не хочется.
это как соблаговолите понимать?

//В конце-концов это ошибка WinXP SP2 а не моя.
Вы так уверены? а очередь сообщений вы проверяите?


VID   (2005-12-02 14:38:00) [4]

С ProcessMessages заморачиваться не хочется.
В конце-концов это ошибка WinXP SP2 а не моя.
И хотелось бы применить какое-нить менее кардинальное решение.

SendMessage(Form1.Handle, WM_PAINT, 0, 0);
не помог. И вообще, когда после переключения к другому приложению, обратно возвращаешься к своему - у него ваще крышу сносит: Помимо того, что ничего не отрисовывается, это приложение можно еще и передвигать за заголовок. Причем (SendMessage(Form1.Handle, WM_PAINT, 0, 0)) тут не причем, так и без него бывает.


-=SPIDER=-   (2005-12-02 14:13:00) [5]

Пробовал в цикле и при появлении формы вызывать:
SendMessage(Form1.Handle, WM_PAINT, 0, 0);


ДНО   (2005-12-02 14:12:00) [6]

Application.ProcessMessages;


VID   (2005-12-02 14:07:00) [7]

Удалено модератором
Примечание: Создание пустых сообщений


Наверх

Титульная страница Поиск, карта сайта Написать письмо