Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 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
14-1092743998
Kerk
2004-08-17 15:59
2004.09.05
the World s Longest Single Word Domain Name


14-1092632626
Мюмзик в мове
2004-08-16 09:03
2004.09.05
Опять эти комары


1-1092910930
ExpertTech
2004-08-19 14:22
2004.09.05
Считывание из text файла по одному символу


14-1092725070
VMcL
2004-08-17 10:44
2004.09.05
Конф. Media


6-1088789111
Delphistik
2004-07-02 21:25
2004.09.05
работа с IP адресом





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский