Главная страница
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.043 c
14-1092463001
KSergey
2004-08-14 09:56
2004.09.05
Про местный чат


4-1090322082
Le!
2004-07-20 15:14
2004.09.05
USB и работа с ним!


1-1093025592
shc
2004-08-20 22:13
2004.09.05
Копирование значений в динамический массив


14-1092527888
василий
2004-08-15 03:58
2004.09.05
Windows XP


14-1092804127
olookin
2004-08-18 08:42
2004.09.05
Может ли стандартный компьютер быть двухпроцессорным?