Einzelnen Beitrag anzeigen

delphinia

Registriert seit: 16. Feb 2006
444 Beiträge
 
Delphi 11 Alexandria
 
#1

ListView Icon vertauschen / verschieben

  Alt 12. Mär 2006, 14:41
Hallo,

ich sitze seit 2 Tagen an einem Problem und komme nicht weiter.
Ich möchte gerne in einer TListView ein Icon mit der Maus verschieben. Aber auf ganz bestimmte art und weise!
Und zwar: Icon klicken ziehen und auf einem anderem Icon ablegen und beide tauschen ihren Platz.


Alles was ich bis jetzt habe - was aber nicht richtig funktioniert - ist das *nicht schimpfen für diesen Müll*

*hilfe* Gruss Doreen

Delphi-Quellcode:
procedure TForm1.ListView1MouseMove(Sender: TObject; Shift: TShiftState;
  X, Y: Integer);
begin
  p2.x := x;
  p2.y := y;
end;

procedure TForm1.ListView1Click(Sender: TObject);
begin
  if (ListView1.Selected <> nil) then
  begin
    ItemIdx := ListView1.Selected.Index;
    p.x := ListView1.Selected.Position.x;
    p.y := ListView1.Selected.Position.y;
  end;
end;

procedure TForm1.ListView1MouseUp(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  ListView1.Items.BeginUpdate;


  DropItem := ListView1.GetItemAt(p2.x, p2.y);
  NextItem := ListView1.GetNextItem(DropItem, sdAll, [isFocused]);

  if Assigned(NextItem) then
  begin
    ListView1.Items[NextItem.Index].SetPosition(p2);
    ListView1.Items[ItemIdx].SetPosition(p2);
  end;

  ListView1.Items.EndUpdate;
end;


procedure TForm1.ListView1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
begin
//
end;

procedure TForm1.ListView1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
//
end;
[edit=r_kerber]Code- durch Delphi-Tags ersetzt. Mfg, r_kerber[/edit]
Doreen
Gruss Doreen
  Mit Zitat antworten Zitat