Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.17;
Скачать: CL | DM;

Вниз

Drag&Drog группы элементов в ListBox   Найти похожие ветки 

 
leonidus   (2004-10-04 16:13) [0]

Мастера, подскажите советом, как в 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, а как сделать тоже самое для нескольких выделенных элементов?


 
leonidus   (2004-10-04 22:28) [1]

Мастера, неужели никто не сталкивался с подобной проблемой?


 
Fay ©   (2004-10-04 22:31) [2]

Selected там есть, или уже совсем нету?


 
jack128 ©   (2004-10-04 22:34) [3]

leonidus   (04.10.04 16:13)
а чтоо ты хочешь, естественно - ты же перемещаешь только один итем

>with (Sender as TListBox) do
> Items.Move(ItemIndex,ItemAtPos(Point(x,y),True));

перемещай все итемы (в цикле, проверяя Selected[i]) и все будет ОК


 
leonidus   (2004-10-05 09:05) [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;

в этом случае все равно двигается только один элемент...


 
Warlock ©   (2004-10-05 10:31) [5]

leonidus   (05.10.04 9:05) [4]

Это неверно. Принцип такой - определяй первый выделенный, а остальные смещай в цикле относительно его (те выделенного ItemIndex-a)


 
miwa ©   (2004-10-05 11:54) [6]

А попробуй-ка цикл сверху вниз, тоесть не for ... to a for i:=items.count-1 downto 1.


 
Warlock ©   (2004-10-05 12:01) [7]

Кстати, метод Items.Move ListBox-а сбрасывает свойство Selected, поэтому больше ничего не двигается.



Страницы: 1 вся ветка

Текущий архив: 2004.10.17;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.025 c
3-1094742606
senya
2004-09-09 19:10
2004.10.17
Как подсчитать количество соединений к БД?


4-1095323648
Alex_s
2004-09-16 12:34
2004.10.17
Реализация HOOK


11-1081438953
Delphi5.01
2004-04-08 19:42
2004.10.17
Mojet oshibka? Result:=PCheckMesh(NewPanel(AParent, EdgeStyle));


1-1096485185
sdw_syscoder
2004-09-29 23:13
2004.10.17
Структура каталогов и файлов на диске


6-1091730361
Alexis
2004-08-05 22:26
2004.10.17
Проблема с определением IP компов LAN a