Вопрос
Есть форма (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 Сообщество Чайников
Контактная информация