Hallo Helmi,
Focused und Selected sind Eigenschaften, die gesondert behandelt werden müssen:
Delphi-Quellcode:
procedure ExchangeItems(items: TListItems; index1, index2: Integer);
var
li, item1, item2: TListItem;
b: Boolean;
procedure SwapFocus(item1, item2: TListItem);
begin
b := item1.Focused;
item1.Focused := item2.Focused;
item2.Focused := b;
end;
procedure SwapSelected(item1, item2: TListItem);
begin
b := item1.Selected;
item1.Selected := item2.Selected;
item2.Selected := b;
end;
begin
item1 := items.Item[index1];
item2 := items.Item[index2];
items.BeginUpdate;
try
li := TListItem.Create(items);
li.Assign(item1);
item1.Assign(item2);
item2.Assign(li);
SwapFocus(item1, item2);
SwapSelected(item1, item2);
li.Free;
finally
items.EndUpdate
end;
end;
Grüße vom marabu