Главная страница
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.038 c
4-1122032517
Zak3D[@Tm]
2005-07-22 15:41
2005.09.11
Как запустить другое приложение?


1-1124611170
.ruslan
2005-08-21 11:59
2005.09.11
Сортировка в ListView по индексу иконки


3-1122900580
Cheaterr
2005-08-01 16:49
2005.09.11
Короткий вопрос по Access


1-1124246971
Киря
2005-08-17 06:49
2005.09.11
Как ускорить работу программы


4-1122138012
KSergey
2005-07-23 21:00
2005.09.11
Как запустить программу с правами system...