Переполнение содержимого в Delphi TListBox при выборе (Win7, 32bit, themed) - PullRequest
2 голосов
/ 20 октября 2010

У меня есть TListBox на форме Windows с 966 элементами в ней. Когда я нажимаю кнопку в форме, выбирается подмножество этих строк (примерно 200 из них).

Если я теперь расфокусирую свое приложение, щелкнув где-нибудь на панели задач, записи из моего TListBox кровоточат вверх, так что они видны над границами TListBox. К счастью, они истекают кровью из-за компонента TGroupBox, который находится прямо над ними, однако это все еще выглядит крайне неполированным.

Я могу воспроизвести это только на одном компьютере с Win 7 x64, используя тему Aero (у меня есть другой ноутбук с Win 7 x64, который не имеет такой же проблемы с той же настройкой темы).

Я пытался выдать PostMessage (Self.Handle, WM_PAINT, 0, 0) непосредственно после изменения состояния выбора, которому предшествовал ListBox.Refresh. Это не помогает.

Любая помощь будет высоко ценится. Пожалуйста, сообщите, если вам нужно больше деталей.

Приветствия, Дункан

1 Ответ

0 голосов
/ 17 марта 2011

Используете ли вы модуль XPManifest или вы включили темы для своего приложения?Если это так, попробуйте не использовать его, чтобы увидеть, что происходит.Это может быть очень плохо, если у вас нет хорошей видеокарты.

Мои 2 цента?Избегайте использования тем вообще.Это просто, не очень хорошо работает.

...