![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Drag&Drog группы элементов в ListBox [D6]
leonidus © (2004-10-04 16:13:00)Мастера, подскажите советом, как в ListBox`е выделив группу элементов перетащить их в другое место списка? Делаю так:
procedure TForm7.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
begin
with (Sender as TListBox) do
Items.Move(ItemIndex,ItemAtPos(Point(x,y),True));
end;
procedure TForm7.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept:=(Sender=Source);
end;
этот код работает только для одного элемента даже если MultiSelect:=true, а как сделать тоже самое для нескольких выделенных элементов?
Warlock (2004-10-05 12:01:00) [1]Кстати, метод Items.Move ListBox-а сбрасывает свойство Selected, поэтому больше ничего не двигается.
miwa (2004-10-05 11:54:00) [2]А попробуй-ка цикл сверху вниз, тоесть не for ... to a for i:=items.count-1 downto 1.
Warlock (2004-10-05 10:31:00) [3]leonidus (05.10.04 9:05) [4]
Это неверно. Принцип такой - определяй первый выделенный, а остальные смещай в цикле относительно его (те выделенного ItemIndex-a)
leonidus (2004-10-05 09:05:00) [4]Да че-то не получается в цикле
procedure TForm7.ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
i:integer;
begin
with (Sender as TListBox) do
begin
for i:=0 to items.Count-1 do
begin
if Selected[i] then Items.Move(ItemIndex,ItemAtPos(Point(x,y),True));
end;
end;
end;
в этом случае все равно двигается только один элемент...
jack128 (2004-10-04 22:34:00) [5]leonidus (04.10.04 16:13)
а чтоо ты хочешь, естественно - ты же перемещаешь только один итем
>with (Sender as TListBox) do
> Items.Move( ItemIndex,ItemAtPos(Point(x,y),True));
перемещай все итемы (в цикле, проверяя Selected[i]) и все будет ОК
Fay (2004-10-04 22:31:00) [6]Selected там есть, или уже совсем нету?
leonidus (2004-10-04 22:28:00) [7]Мастера, неужели никто не сталкивался с подобной проблемой?