Главная страница
    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.055 c
14-1092660525
Tiger666
2004-08-16 16:48
2004.09.05
Как в Delphi подключить обработку инструкций MMX, SSE и т.д.


3-1092304333
User2
2004-08-12 13:52
2004.09.05
IDENTITY


1-1093017647
Project1
2004-08-20 20:00
2004.09.05
published свойство


14-1091358962
Real
2004-08-01 15:16
2004.09.05
Влияние гороскопа на выбор профессии


14-1092528253
Леха
2004-08-15 04:04
2004.09.05
Run time error 200





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский