Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.05;
Скачать: CL | DM;

Вниз

Как поменять местами элементы в 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;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.024 c
3-1092312735
sesh
2004-08-12 16:12
2004.09.05
PostgreSQL


14-1092570661
GanibalLector
2004-08-15 15:51
2004.09.05
Оса укусила прямо в глаз


1-1093144675
race1
2004-08-22 07:17
2004.09.05
dcu vs. pas


8-1083878953
diaz
2004-05-07 01:29
2004.09.05
Вызов панели настройки видео кодеков


3-1091796517
}|{yk
2004-08-06 16:48
2004.09.05
По эффективности