Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.039 c
1-1093110577
Ragazor
2004-08-21 21:49
2004.09.05
Delphi & 1C


14-1092621406
Думкин
2004-08-16 05:56
2004.09.05
С днем рождения! 16 августа


14-1092566825
Хыыы
2004-08-15 14:47
2004.09.05
Оценка программы


1-1092817452
DK
2004-08-18 12:24
2004.09.05
Ограничени размера TMemo


14-1092373880
DION
2004-08-13 09:11
2004.09.05
Как узнать...Присутствует ли клавиатура???




   Наверх