Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.07.11;
Скачать: CL | DM;

Вниз

CheckBox в ListView в виртуальном режиме, OwnerData:=true;   Найти похожие ветки 

 
MegaVolt ©   (2005-06-21 13:16) [0]

При переводе ListView в виртуальный режим OwnerData=true не отображаются CheckBox-ы  Место под них выделяется а сами не отрисовываются. В обычном режиме всё работает нормально. Вроде бы OwnerData на отрисовку не должен влиять а получается что влияет  Как можно сделать CheckBox видимыми?


 
MegaVolt ©   (2005-06-21 15:33) [1]

Забыл указать режим: vsReport


 
MegaVolt ©   (2005-06-21 19:20) [2]

Вот по этой ссылке есть баги ListView.
Может кто имеет возможность добавить этот баг?
http://qc.borland.com/wc/qcmain.aspx?da=422


 
MegaVolt ©   (2005-06-22 10:21) [3]

Похоже на Микрософтовскую фичу. Угробил кучу времени и наконец нашел полурешение  Я думаю с этого положения уже вы мне поможете точно

Итак:
MSDN по поводу LVS_EX_CHECKBOXES пишет.

Enables items in a list view control to be displayed as check boxes. This style uses item state images to produce the check box effect.

Version 4.70. Enables check boxes for items in a list-view control. When set to this style, the control creates and sets a state image list with two images using DrawFrameControl. State image 1 is the unchecked box, and state image 2 is the checked box. Setting the state image to zero removes the check box altogether.

Version 6.00 Check boxes are visible and functional with all list-view modes except the tile view mode introduced in ComCtl32.dll version 6. Clicking a checkbox in tile view mode only selects the item; the state does not change.
Note Comctl32.dll version 6 is not redistributable but it is included in Microsoft Windows XP or later. To use Comctl32.dll version 6, specify it in a manifest. For more information on manifests, see Using Windows XP Visual Styles.

You can obtain the state of the check box for a given item with ListView_GetCheckState. To set the check state, use ListView_SetCheckState. If this style is set, the list-view control automatically toggles the check state when the user clicks the check box or presses the space bar.

На основе этой инфы начинаю копать: Ставлю на форму ImageList прописываю его в свойство ListView.StateImages bи сам прописываю две картинки в него. Они великолепно отрисовываются и переключаются когда меняешь StateIndex. А дальше началось самое интересное оказалось что если я у ListView установлю свойство ReadOnly в true то мои картинки при запуске заменяются изображениями CheckBox-a!!!! Дальнейшие эксперименты привели к тому что на форму можно бросать пустой ImageList а свойство ReadOnly переключать уже в Run-Time тогда эти картинки создаются виртуально и в ImageList не появляются после выхода из программы. Пробовал создавать и ImageList в RunTime почему то непрошло  Картинки создаватся не хотят.

И вот теперь я подошел к следующей проблеме из изменение. В обычном StringGride просто в OnMouseUp пропысывал изменить переменную ответственную за CheckBokc и всё класненько работало. Но тут вылез очень любопытный глюк: В OnMouseUp прога вваливается и по MouseDown и по MouseUp  Я в шоке  Причём если нажимать на тексте то всё работает нормально а вот если по CheckBox-Картинке то срабатывает дважды.

Господа специалисты помогите что нибудь поделать с этим глюком. Создаётся ощущение что CheckBox сам посылает сообщение на любое изменение мыши и ListBox тоже посылает. А может я не прав. Короче как убрать событие по MouseDown?



Страницы: 1 вся ветка

Текущий архив: 2005.07.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.049 c
14-1118725730
serguncho
2005-06-14 09:08
2005.07.11
Помогите с переменной в PHP


1-1119483831
paule
2005-06-23 03:43
2005.07.11
Прогресс бар


14-1118666992
zioza
2005-06-13 16:49
2005.07.11
Отключить клавиатуру


4-1116439951
pound
2005-05-18 22:12
2005.07.11
бит чётности


14-1118085760
Gero
2005-06-06 23:22
2005.07.11
Ищу ветку