Einzelnen Beitrag anzeigen

DieHardMan

Registriert seit: 16. Jul 2002
Ort: Stuttgart
68 Beiträge
 
#1

TListView CheckBoxen verschwinden

  Alt 15. Mai 2003, 07:10
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...
  Mit Zitat antworten Zitat