Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.022 c
14-1124116765
Kerk
2005-08-15 18:39
2005.09.11
Чем-то письмо в "молодежный журнал" напоминает :)))


2-1123394184
makvell
2005-08-07 09:56
2005.09.11
просто вопрос...


14-1124089417
Petrovski
2005-08-15 11:03
2005.09.11
Развод на международном уровне?


14-1124109230
oldman
2005-08-15 16:33
2005.09.11
Мой племянник учит Инглиш :)))


14-1124074481
Alexander Panov
2005-08-15 06:54
2005.09.11
Просьба потестировать.




   Наверх