Вниз
Скачать: CL | DM;

DragDrop в ListView   Найти похожие ветки 

← →
Kolya   (2006-01-16 11:31) [0]

Есть такой код:


procedure TForm1.ListView1DragOver(Sender, Source: TObject; X,
 Y: Integer; State: TDragState; var Accept: Boolean);
begin
Accept:=Source=ListView1;
end;

procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X,
 Y: Integer);
var i,i1: integer; li1, li2: TListItem;
begin
 li1:=(Sender as TListView).GetItemAt(X,Y);
 If Sender=ListView1 then
  begin
 if li.Index>li1.Index then
  begin
   i1:=pred(ListView1.Items.Count);
   For i:=0 to i1 do
    If ListView1.Items[i].Selected then
     begin
      li2:=ListView1.Items[i];
       If li1=nil then
         li1:=ListView1.Items.Add;
       else
         li1:=ListView1.Items.Insert(li1.Index);
      li1.Caption:=li2.Caption;
      li1.SubItems.Add(li2.SubItems[0]);
      li1.SubItems.Add(li2.SubItems[1]);
      li1.Selected:=true;
      li2.Delete;
     end;
  end else
   begin
   i1:=pred(ListView1.Items.Count);
   For i:=i1 downto 0 do
    If ListView1.Items[i].Selected then
     begin
      ListView1.Items[i].Selected:=false;
      li2:=ListView1.Items[i];
       If li1=nil then
        li1:=ListView1.Items.Add
       else
        li1:=ListView1.Items.Insert(li1.Index);
      li1.Caption:=li2.Caption;
      li1.SubItems.Add(li2.SubItems[0]);
      li1.SubItems.Add(li2.SubItems[1]);
      li1.Selected:=true;
      li2.Delete;
     end;
    end;
  end;
end;


Меня интересуют два вопроса:
- можно ли увеличить быстродействие;
- почему при перетаскивании снизу вверх итемы располагаются в обратном порядке: например, те, что были последними среди выделенных, становятся первыми?


← →
Kolya   (2006-01-17 12:33) [1]

Кто-нибудь хоть видел этот вопрос? Если ответить сложно, то это хоть дайте знать.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.03 c
9-1124884482
Kisha
2005-08-24 15:54
2006.02.12
Моделирование молекулы в пространстве


1-1137387906
Гость101
2006-01-16 08:05
2006.02.12
Прокручивание текста


15-1137565464
begin...end
2006-01-18 09:24
2006.02.12
С Днём рождения! 18 января


6-1131038808
KindDog
2005-11-03 20:26
2006.02.12
Indy TIdCmdTCPClient подвисает на SendCmd


15-1138013180
DmitriyR
2006-01-23 13:46
2006.02.12
Дали задание написать простой E-Mail сервер




   Наверх