Einzelnen Beitrag anzeigen

Centrii

Registriert seit: 18. Mai 2007
Ort: FDS
108 Beiträge
 
Delphi 2006 Architect
 
#12

Re: Listview Zeilen färben, On Custom DrawItem

  Alt 11. Apr 2008, 14:37
Danke für die Hilfe Marabu...
Dein Source geht mit kleiner Abwandlung für ein Item. Für mehrere schaff ich es nur wenn "ito < ifrom"
Wenn ich mal mehr Zeit habe schaue ich mir das nochmal genauer an, aber für jetzt hab ich es auf ein Item begrenzt.
Hier der jetztige Code

Delphi-Quellcode:
procedure TfDLMain.ListViewDragDrop(Sender, Source: TObject; X, Y: Integer);

    procedure MoveStrings(s: TStrings; iFrom, iTo, iCount: Integer);
    var
      i: Integer;
    begin
      s.BeginUpdate;
      try
        if iTo < iFrom then
            s.Move(Pred(iFrom+iCount), iTo)
        else
            s.Move(iFrom, iTo);
      finally
        s.EndUpdate;
      end;
    end;

var
DragItem, DropItem, CurrentItem, NextItem: TListItem;
i, Index1, Index2, Index3 :Integer;
begin
  if Sender = Source then begin
    if ListView.SelCount = 1 then begin
      for i:= 0 to ListItems.Count-1 do begin
        if ListItems[i].Selected = true then begin
          DropItem := ListView.GetItemAt(X, Y);
          if DropItem <> nil then begin
            Index1 := i;
            Index2 := DropItem.Index;
            Index3 := ListView.SelCount;
            ListItems[i].Selected := false;
            MoveStrings(Values,Index1,Index2,Index3);
          end;
        end;
      end;
      ListView.Invalidate;
    end
    else MessageDlg('Bitte zum verschieben von mehreren Items das "Move Up", bzw. das "Move Down" verwenden.', mtInformation, [mbOK], 0);
  end;
end;
Vielen Dank für die Anregungen Marabu

Gruß Ruben
Ruben
Theorie ist, wenn man alles weiss, aber nichts funktioniert. Praxis ist, wenn alles funktioniert und keiner weiss warum
  Mit Zitat antworten Zitat