У меня есть TListView
в виртуальном режиме, и когда я перетаскиваю элемент, я хочу переместить выделение в новую позицию элемента. Я делаю это, очищая выделение, а затем устанавливаю Selected выбранного элемента. Это нормально, но есть проблема. После этого, если я удерживаю Shift и щелкаю элемент (например, множественный выбор), список ведет себя так, как будто начало выбора - это элемент, который был выбран ранее, а не тот, который я выбрал (с Selected: = True).
Я пытался смоделировать щелчок, но после перемещения мыши я получаю нарушение прав доступа:
procedure TForm1.ListDragDrop(Sender, Source: TObject; X, Y: Integer);
begin
List.Perform(WM_LBUTTONDOWN, MK_LBUTTON, $002E001E);
Sleep(10);
List.Perform(WM_LBUTTONUP, 0, $002E001E);
end;