Ich benutze diese Prozedur um Items in einer ListView nach oben und nach unten zu verschieben. Die Eigenschaft Checkboxes ist auf True. Mein Problem ist, wenn ich ein Item mit Häckchen verschiebe ist alles in ordnung, verschiebe ich aber ein Item ohne Häkchen auf ein Item mit Häckchen verschwinden alle anderen Häckchen auser das Häckchen von dem soeben verschobenen Item.
Habe ein kleines Beispielprojekt erstellt, dass mein Problem vielleicht etwas einfacher darstellt:
Beispiel-Projekt
Delphi-Quellcode:
procedure MoveItems(AListView: TListView; Up: Boolean = True);
var
OldItem, NewItem: TListItem;
AIndex: Integer;
begin
Assert(Assigned(AListView));
with AListView do
begin
Items.BeginUpdate;
try
OldItem := TListItem.Create(Items);
try
OldItem.Assign(Selected);
if Up then
AIndex := Selected.Index - 1
else
AIndex := Selected.Index + 1;
if not AIndex in [0..Items.Count - 1] then
Exit;
Selected.Delete;
NewItem := Items.Insert(AIndex);
NewItem.Assign(OldItem);
Selected := NewItem;
finally
OldItem.Free;
end;
finally
Items.EndUpdate;
end;
end;
end;
[edit=Daniel B]Delphi-Tags eingefügt. MfG Daniel B.[/edit]
Alle meine Entchen...