Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#2

Re: TListView: Verschieben von Items: Problem mit Focus

  Alt 3. Okt 2006, 19:10
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
  Mit Zitat antworten Zitat