Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.02.12;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.058 c
1-1136800132
M_Alex
2006-01-09 12:48
2006.02.12
как приостановить и возобновить выполение процедуры


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


2-1138121355
Ell
2006-01-24 19:49
2006.02.12
Как уменьшить размер программы?


1-1136895827
-matrix-
2006-01-10 15:23
2006.02.12
Проблема с выводом графика


2-1138094394
V0va
2006-01-24 12:19
2006.02.12
удаление строк из списка