Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
ВнизКак поменять местами элементы в ListView? Найти похожие ветки
← →
Islander (2004-08-21 10:55) [0]Здравствуйте!
Вроде бы банальный вопрос, но это не работает:
var
ListItem : TListItem;
index : integer;
begin
index := lvwData.itemindex;
ListItem := LvwData.Items [index - 1];
LvwData.Items [index - 1] := LvwData.Items [index];
LvwData.Items [index] := ListItem;
← →
Sandman25 © (2004-08-21 11:08) [1]ListItem - это ссылка.
Поищите метод Move или Exchange в типе, экземпляром которого является TListView.Items
← →
Islander (2004-08-21 11:58) [2]Нет там такого :(
← →
Sandman25 © (2004-08-21 12:08) [3]Ну, тогда через Delete & Insert. Хотя нужно подумать, странно, что такая простая операция не поддерживается. Может, через сообщение получится.
← →
Sandman25 © (2004-08-21 12:11) [4]Посмотрел исходники. Только через Delete/Insert
← →
olookin © (2004-08-21 12:36) [5]Может быть так?
var
ListItem : TListItem;
index : integer;
begin
index := lvwData.itemindex;
ListItem := TListItem.Create(LvwData.Items);
ListItem.Assign(LvwData.Items [index - 1]);
LvwData.Items [index - 1].Assign( LvwData.Items [index]);
LvwData.Items [index].Assign(ListItem);
← →
olookin © (2004-08-21 12:55) [6]to SandMan25
Когда все описанное в ветке про песенку ты делаешь на перетаскивание мышью, то Delete/Insert плохой выход.
← →
Sandman25 © (2004-08-21 12:57) [7]Согласен.
← →
Sandman25 © (2004-08-21 14:48) [8]Все-таки из вредности добавлю, что операция обмена крайне редка. Даже при перетаскивании мышью :)
← →
olookin © (2004-08-21 14:53) [9][8] Sandman25 © (21.08.04 14:48)
Как ни редка, но я ее использую... Вероятно, тоже из вредности
← →
Sandman25 © (2004-08-21 15:01) [10]Хоть я и вредный, но считаю, что не стоит использовать два куска кода для решения одной задачи, поэтому все-таки твой способ лучше.
← →
olookin © (2004-08-21 15:13) [11][10] Sandman25 © (21.08.04 15:01)
Хм. Хоть я тоже вредный, но не уверен, что мой способ оптимальней всего на свете.
← →
Sandman25 © (2004-08-21 15:34) [12]Оптимальнее всего будет написать наследника, который будет использовать protected-члены и добавит пару методов в public.
← →
TUser © (2004-08-21 20:45) [13]Предоагаю
ListView1.Items.Item[0].Selected:=true;
ListView1.MoveSelection(ListView1);
Первый итем перемещается в конец.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.033 c