Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
ВнизНайти похожие ветки [Добавление итемов в 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2005.09.11;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.017 c