СообЧа > База Знаний > Программирование > Delphi

Вопрос

Есть форма (Form1), компонент TListView (List1), 2 кнопки (B1, B2, 1-я "Вверх", 2-я "Вниз"). Как мне сделать так, чтобы при нажатии кнопки "Вверх" выбранная мною строка переместилась вверх тем самым верхнюю строчку опустить вниз. И обратное действие при нажатии на кнопку "Вниз"?

Ответ

Перемещение вниз:

Procedure DownClick;
var s:string;
begin
if List1.items.Count=0 then exit; // если список пуст — выходим
if List1.ItemIndex=List1.items.count-1 then exit; //если выделен последний элемент
//списка — вниз двигать некуда — выходим
s:=list1.Items[List.ItemIndex]; // \
list1.Items[List.ItemIndex]:=list1.Items[List.ItemIndex+1]; // } меняем местами записи
list1.Items[List.ItemIndex+1]:=s; // /
list1.ItemIndex:=List1.ItemIndex+1; // перемещаем выделение на строку ниже.
end;

Перемещение вверх делается аналогично :

Procedure UpClick;
var s:string;
begin
if List1.items.Count=0 then exit; // если список пуст — выходим
if List1.ItemIndex=0 then exit; //если выделен первый элемент
//списка — вверх двигать некуда — выходим
s:=list1.Items[List.ItemIndex]; // \
list1.Items[List.ItemIndex]:=list1.Items[List.ItemIndex-1]; // } меняем местами записи
list1.Items[List.ItemIndex-1]:=s; // /
list1.ItemIndex:=List1.ItemIndex-1; // перемещаем выделение на строку выше.
end;

Из конференции Expert_FAQ



Copyright © 2000-2004 Сообщество Чайников
Контактная информация