Einzelnen Beitrag anzeigen

DieHardMan

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

Lösung gefunden

  Alt 15. Mai 2003, 14:29
Hab mir dieses Assign mal angeschaut und rausgefunden dass es an folgender Anweisung liegt:

Code:
OldItem.Checked := Selected.Checked;
Hab zwar bis jetzt noch net gerafft wie und wieso des net geht, aber ich hab die prozedur ein bisschen modifiziert und so funkt es jetzt.

Delphi-Quellcode:
{*********************************************************}
{ Einzelne ListView Items nach oben und unten verschieben }
{*********************************************************}
procedure MoveItems(AListView: TListView; Up: Boolean = True);
var
  OldItem, NewItem: TListItem;
  AIndex: Integer;
  ItemChecked: boolean;
begin
  Assert(Assigned(AListView));
  with AListView do
  begin
    Items.BeginUpdate;
    try
      OldItem := TListItem.Create(Items);
      try
        OldItem.Caption := Selected.Caption;
        OldItem.Data := Selected.Data;
        OldItem.ImageIndex := Selected.ImageIndex;
        OldItem.Indent := Selected.Indent;
        OldItem.OverlayIndex := Selected.OverlayIndex;
        OldItem.StateIndex := Selected.StateIndex;
        OldItem.SubItems := Selected.SubItems;
        if Selected.Checked then
          ItemChecked := true
        else
          ItemChecked := false;
        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);
        NewItem.Checked := ItemChecked;
        Selected := NewItem;
      finally
        OldItem.Free;
      end;
    finally
      Items.EndUpdate;
    end;
  end;
end;
Alle meine Entchen...
  Mit Zitat antworten Zitat