есть листвью нужно
организвать драго энд дроп
Если беру допустим итем с 1-ой позиции и перемещаю на 5
Ондолжен оказтья на 5 позиции а все итемы выше 5 должны подняться до 1 позиции
Перемещение в лствью
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
Что никто не знает?
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
-
- Сообщения: 407
- Зарегистрирован: 13 сен 2004, 12:05
- Откуда: Курган
- Контактная информация:
с драг&дроп'ом не так все просто
даже я не работал с этим, а что ты пытаешься бросить в листвьювер?

Чем проще - тем оригинальней, а значит гениально, т.к. все гениальное - просто!
Да! Кстати! Ctrl+V реально вставляет!!! ХDD

-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
В плане что бросить
Он находится в состоянии репорт
Я сделал чтоб можно было менять местами ветки
Он находится в состоянии репорт
Я сделал чтоб можно было менять местами ветки
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.
Устанавливаем DragMode в dmAutomatic
и DragKind в dkDrag
и DragKind в dkDrag
Код: Выделить всё
procedure TForm1.ListView1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
begin
Accept := Source = Sender;
end;
procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X, Y: Integer);
var
DragItem, DropItem, CurrentItem: TListItem;
begin
if Sender = Source then
with TListView(Sender) do
begin
DropItem := GetItemAt(X, Y);
CurrentItem := Selected;
if DropItem = nil
then DragItem := Items.Add
else if DropItem.Index > CurrentItem.Index
then DragItem := Items.Insert(DropItem.Index+1)
else DragItem := Items.Insert(DropItem.Index);
DragItem.Assign(CurrentItem);
CurrentItem.Free;
end;
end;
С уважением, Lost Angel...
-
- Сообщения: 340
- Зарегистрирован: 22 ноя 2004, 19:15
- Откуда: Минск
- Контактная информация:
LAngel,
Попробовал тут
1)Работает не 100%Иногда отваливается при попытке перенести снизу вверх
2)При CurrentItem.Free освобождается его Data и DragItem.Data что не есть гуд
Попробовал тут
1)Работает не 100%Иногда отваливается при попытке перенести снизу вверх
2)При CurrentItem.Free освобождается его Data и DragItem.Data что не есть гуд
Просто набрать исходники может и любая обезьяна, а придумать и отладить не каждый человек.