Einzelnen Beitrag anzeigen

mimi

Registriert seit: 1. Dez 2002
Ort: Oldenburg(Oldenburg)
2.008 Beiträge
 
FreePascal / Lazarus
 
#2

Re: Mehrer einträge verschieben

  Alt 27. Aug 2006, 20:32
ich habe einen weg gefunden allerdings geht dieser weg nur wenn nicht das letzte item in der liste ausgwält wird beispiel:
Item1
Item2
Item3
Item4
Item5

jetzt ziehe ich item1 und 2 auf Item5 dann vertauschen sich die einträge von item1 und 2 die reinfolge ändert sicht dann sieht die liste so aus:
Item5
Item3
Item4
Item2
Item1
wobei sie eigentlich so aussehen sollte:
Item5
Item3
Item4
Item1
Item2

hier der code:
Delphi-Quellcode:
procedure TForm1.DraqDrop(Sender, Source: TObject; X, Y: Integer);
var
  index,newIndex:Integer;
  i:Integer;
begin
  if Sender <> Source then begin
// TJvCheckListBox(Source).MoveSelection(TJvCheckListBox(sender));
    TJvCheckListBox(Source).CopySelection(TJvCheckListBox(sender));
  end
  else begin
// index:=TJvCheckListBox(Source).ItemIndex;
    newIndex:=TJvCheckListBox(Source).ItemAtPos(Point(x,y),true);
    if newIndex > -1 then begin
      for i:=0 to TJvCheckListBox(Source).Count-1 do begin
        if TJvCheckListBox(Source).Selected[i] = True then begin
          TJvCheckListBox(Source).items.exchange(i,newIndex);

          TJvCheckListBox(Source).Selected[i]:=false;
          TJvCheckListBox(Source).Selected[NewIndex]:=True;

          if newIndex+1 < TJvCheckListBox(Source).items.count then
            newIndex:=newIndex+1
          else
            newIndex:=newIndex-1
        end;
      end;
    end;
  end;
end;
ich hoffe ihr könnt mir folgeden
Michael Springwald
MFG
Michael Springwald,
Bitte nur Deutsche Links angeben Danke (benutzte überwiegend Lazarus)
  Mit Zitat antworten Zitat