Hallo Christian,
bei einer virtuellen ListView interessiert dich nur der Index des Items. Das Item darf nicht mit NIL initialisiert werden. sdAll ist in deinem Fall vielleicht besser als sdBelow. Du brauchst keine FOR-Schleife, wenn du GetNextItem() verwendest. ...
Delphi-Quellcode:
uses
Types;
var
i: integer;
sel: TIntegerDynArray;
item: TListItem;
begin
// ...
with lvTasks do
begin
SetLength(sel, lvTasks.SelCount);
item := Selected;
i := 0;
while Assigned(item) do
begin
sel[i] := item.Index;
Inc(i);
item := GetNextItem(item, sdAll, [isSelected]);
end;
end;
// ...
end;
Getippt und nicht getestet.
Grüße vom marabu