![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Лишняя начальная строка в ListView
DVK © (2004-12-23 08:32:00)В одном из приложений, в котором я использую ListView в качестве таблицы, замечено странное явление: иногда в начале ListView появляется пустая строка. Вслед за ней располагается обычные строки. Эту строку нельзя выбрать. Она просто отображается перед первой строкой. Очистка и последующее заполнение ListView не помогает - строка всё равно остаётся. Строка появляется не всегда, отследить, в результате чего она появляется, не удалось. Если кто сталкивался с этим, расскажите, как бороться.
Система WinXP SP2 Delphi7 KOL 2.03. В ListView установлены опции [lvoNoSortHeader,lvoMultiselect,lvoGridLines,lvoRowSelect,lvoFlatsb,lvoInfoTip,lvoUnderlineHot].
dimaxx (2004-12-26 13:13:00) [1]Не замечал. Попробуй при создании формы сделать ListView.Clear.
ECM (2004-12-23 09:23:00) [2]IMHO: под ХР (особенно с включенными XP-темами) ListView - из comctl32.dll работает слегка глюкаво. Твой эффект кажется я когда-то видел, но не разбирался - он очень редко выскакивает.
У меня чаще другой эффект выползает. В режиме lvoGridLines при использовании темы XP - при прокрутке ScrollBar(только кнопками "вверх","вниз") происходит лишняя прорисовка линий - в результате некотрые строки получаются перечеркнутыми
Этот "маразм" позволяет слегка подправить ситуацию:
// OnMessage для ListView
WM_VSCROLL: begin
if Msg.wParam = SB_ENDSCROLL then begin
InvalidateRect(fOwner.Handle,Nil,TRUE);
UpdateWindow(fOwner.Handle);
end;
end;
Кстати это замечалось и на других приложениях (Написаных явно не не KOL). Я думаю тут надо попытаться разобраться... хотя и трудно... :(