Главная страница
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.041 c
3-1122901908
Начинающий3
2005-08-01 17:11
2005.09.11
TADOQUERY


3-1122533289
ChI
2005-07-28 10:48
2005.09.11
поиск по индексным полям вTDBF


14-1124285829
Piter
2005-08-17 17:37
2005.09.11
Забавный эффект :)


14-1124209687
Andy BitOff
2005-08-16 20:28
2005.09.11
Можно ли послать писмо или ...


2-1123532726
Александр1
2005-08-09 00:25
2005.09.11
ввод недопустимых символов