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

Вниз

   Найти похожие ветки [Добавление итемов в ListView]

 
Kair+ ©   (2005-07-21 09:57) [0]

Не получается добавлять субитемы. Вообще, итемы добавляю так:


var
 lvi: LV_ITEM;
begin  
 lvi.mask := lvif_Text;
 lvi.iItem := 0;
 lvi.iSubItem := 0;
 lvi.pszText := PChar(myItemText);
 ListView_InsertItem(ListView, lvi); // добавление итема
 lvi.iSubItem := 1;
 lvi.pszText := PChar(mySubItemText);
 ListView_SetItem(ListView, lvi); // добавление субитемов
end;


В справке написано: You cannot use ListView_InsertItem or LVM_INSERTITEM to insert subitems; the iSubItem member of the LV_ITEM structure must be zero.
Можно добавлять субитемы с помощью ListView_SetItem, но тут одна проблемка: стиль ListView установлен в LVS_SORTASCENDING (сортировка), т.е. когда добавляешь сначала итем в начало списка (lvi.iItem := 0), то  происходит сортировка и позиция итема в ListView изменяется, и потом когда пытаешься добавить субитем в начало списка в ListView, то он уже добавляется у другого итема, а не у того, у которого надо...
Пробовал также на время добавления итемов убирать стиль LVS_SORTASCENDING, а затем снова устанавливать его, но почему-то после этого ListView не сортируется:


SetWindowLong(ListView, gwl_Style, GetWindowLong(ListView,
             gwl_Style) and not lvs_SortAscending);
// добавление итемов
SetWindowLong(ListView, gwl_Style, GetWindowLong(ListView,
             gwl_Style) or lvs_SortAscending);


 
alpet ©   (2005-07-21 11:28) [1]

Kair+ ©   (21.07.05 09:57)
>"Можно добавлять субитемы с помощью ListView_SetItem, но тут одна проблемка: стиль ListView установлен в LVS_SORTASCENDING (сортировка), т.е. когда добавляешь сначала итем в начало списка (lvi.iItem := 0), то  происходит сортировка и позиция итема в ListView изменяется, и потом когда пытаешься добавить субитем в начало списка в ListView, то он уже добавляется у другого итема, а не у того, у которого надо..."

А в чем проблема ? Сортировка выполняется, но ведь индекс то возвращаяется валидный, или ты используешь счетчик добавлений?

lvi.iItem := ListView_InsertItem(ListView, lvi); // добавление элемента
lvi.iSubItem := 1;
....



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

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

Наверх




Память: 0.47 MB
Время: 0.037 c
14-1124164520
Jonikeidg
2005-08-16 07:55
2005.09.11
Перенос видео с касеты на комп


9-1113037739
Kolan
2005-04-09 13:08
2005.09.11
Распознавание образов.


4-1121762729
Kolan
2005-07-19 12:45
2005.09.11
Проверка очереди Com порта неработает.


4-1121967182
Creep1
2005-07-21 21:33
2005.09.11
Поймать событие сворачивания/разворачивания окна


14-1124362119
kyn66
2005-08-18 14:48
2005.09.11
Программа для защиты CD от копирования и виртуализации