TProgressBar никогда не заполняется полностью - похоже, слишком быстро обновляется?

Возможный дубликат:
Ошибка панели задач Windows 7 Aero

С момента появления Windows Vista я заметил ошибку/проблему с TProgressBar в Delphi.

Проблема заключается в том, что индикатор прогресса никогда не заполняется до 100%, иногда он достигает, возможно, 70% - 80%, прежде чем индикатор прогресса достигнет максимума, т.е. 100%

Я читал на разных сайтах и ​​нажимал, прогресс-панель завершила свою работу. Но кажется, что в Delphi VCL есть ошибка, которая точно не отображает прогрессную панель, поэтому, когда она кажется полной, но на самом деле ее нет, это потому, что картина индикатора прогресса не точна.

Если вышесказанное верно, что кажется веской причиной - я не нашел для этого решения. Независимо от операции, которая включает TProgressBar, она никогда не заполняется на 100%, она заполняет только 75% пути.

Как я могу заставить TProgressBar точно заполнить?

Чтобы добавить, я попытался заменить TProgressBar, указав прогрессную панель JVCL, и те нестандартные компоненты VCL работают правильно. Таким образом, это не проблема с тем, как я имею дело с прогрессом, это либо Delphi, либо Windows - или и то, и другое.

Да, я мог бы просто использовать указанную альтернативу, но, если возможно, мне хотелось бы знать, как исправить стандартный TProgressBar.

Спасибо, Крейг.

Ответы

Ответ 1

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

Каждый раз, когда вы устанавливаете счетчик индикаторов выполнения в N сразу после этого, установите его на N-1.

В коде Delphi нет ничего плохого, это особенность общего элемента управления.