Текущий архив: 2006.02.12;
Скачать: CL | DM;
ВнизКак изменить позицию элемена в TListView Найти похожие ветки
← →
Zoidberg © (2006-01-07 14:55) [0]Как можно изменить позицию элемента (строки) в TListView не используя сортировку?
← →
raidan © (2006-01-07 18:25) [1]Поменять местами эту строку с той, куда ты этот элемент хочешь поместить.
← →
Zoidberg © (2006-01-07 19:10) [2]А если я хочу переместить элемент из начала в конец, это нужно будет все элементы по порядку переписывать (включая Subitems)? А другого способа нет?
← →
raidan © (2006-01-07 19:15) [3]TListView - это динамический массив, если я чего не путаю.
Только так:
function MoveListViewItem(listView: TListView; ItemFrom, ItemTo: Word): Boolean;
var
Source, Target: TListItem;
begin
Result := False;
listview.Items.BeginUpdate;
try
Source := listview.Items[ItemFrom];
Target := listview.Items.Insert(ItemTo);
Target.Assign(Source);
Source.Free;
Result := True;
finally
listview.Items.EndUpdate;
end;
end;
← →
Zoidberg © (2006-01-09 15:50) [4]Спасбо, но это все равно не помогло.
Сначала вообще ничего не менялось, пока не изменилTarget := listview.Items.Insert(ItemTo);
наTarget := listview.Items.Insert(ItemTo + 1);
Потом все вроде заработала, но после нескольких таких переносов, программа вываливалась с ошибкой... Причину мне найти не удалось, решил все бросить, и сделать все же через сортировку.
← →
Lamer@fools.ua © (2006-01-09 16:04) [5]
procedure TForm1.Button1Click(Sender: TObject);
var
LI: TListItem;
begin
if ListView1.Selected = nil then
Exit;
LI := ListView1.Items.Insert(0);
LI.Assign(ListView1.Selected);
ListView1.Items.Delete(ListView1.Selected.Index);
end;
?
Страницы: 1 вся ветка
Текущий архив: 2006.02.12;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.035 c