Перетащите ListBoxItem в тот же ListBox в Delphi xe firemonkey

Мне нужен способ сортировки listboxItems внутри одного и того же listbox в мобильном приложении.

Я поставил listbox в форму и добавил несколько listboxitems, я установил DargMode из listboxitems на dmAutomatic, я написал обработчики этого события:

procedure TForm1.ListBox1DragDrop(Sender: TObject; const Data: TDragObject;
  const Point: TPointF);
var
  DropedTarget : TListBoxItem;
begin
  DropedTarget := ListBox1.ItemByPoint(Point.X, Point.Y);
  if (DropedTarget <> nil) then
    (Data.Source as TListBoxItem).Index := DropedTarget.Index;
end;

procedure TForm1.ListBox1DragOver(Sender: TObject; const Data: TDragObject;
  const Point: TPointF; var Operation: TDragOperation);
begin
  if Data.Source is TListBoxItem then
    Operation := TDragOperation.Move;
end;

Проблема в том, что элементы в списке вообще нельзя перетаскивать.

Что я пропустил?


person Reza    schedule 08.05.2014    source источник
comment
Delphi XE — это старая версия, существовавшая до того, как был включен FireMonkey. Это поможет людям ответить, если вы скажете, какую версию вы на самом деле используете.   -  person Mike Sutton    schedule 10.05.2014
comment
@MikeSutton Я думал, что люди получат это от var Operation: TDragOperation в параметрах.   -  person Reza    schedule 10.05.2014


Ответы (1)


Я думаю, вам нужно проверить, проверили ли вы свойство AllowDrag для ListBox1.

И убедитесь, что для установки ListBox1 DragMode равно Manual.

person Santosh Nayak    schedule 04.09.2014