Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Items einer TListView tauschen (https://www.delphipraxis.net/66158-items-einer-tlistview-tauschen.html)

xZise 25. Mär 2006 19:49


Items einer TListView tauschen
 
Ich möchte die Items von einer TListView tauschen...

Ums genau zusagen: Das markierte Item soll eine Position nach obengerückt werden (mit der Folge, dass das obere nach unten rutscht)!

Wie kriege ich das gebacken?

Eine Idee wäre das Item von Position X an Postion X - 1 zu kopieren und das Item dann an Position X + 1 zu löschen, nur das kopieren macht mir Probleme!

mkinzler 25. Mär 2006 19:56

Re: Items einer TListView tauschen
 
Ich würde das Problem durch einen Dreieckstasuch lösen:

Delphi-Quellcode:
hilf := ListView.Items[x];
ListView.Items[x] := ListView.Items[x-1];
ListView.Items[x-1] := hilf;

xZise 25. Mär 2006 20:00

Re: Items einer TListView tauschen
 
Achso ;) Daran habe ich natürlich nicht gedacht, dass ich sie einfach überschreiben könnte ^^ So.. Nun meine 2. Frage:

Welche Procedure wird ausgeführt, wenn ich die Liste mit TListView.Clear lösche?

mkinzler 25. Mär 2006 20:10

Re: Items einer TListView tauschen
 
Zitat:

Welche Procedure wird ausgeführt, wenn ich die Liste mit TListView.Clear lösche?
Also beim Löschen eines Eintrags wird sie Methode ausgeführt, auf welche die Property .OnDeletion zeigt. Ich nehem an, das dieser Event beim Löschen der kompletten Liste auch ausgeführt (Count mal?) wird.

Corpsman 25. Mär 2006 20:14

Re: Items einer TListView tauschen
 
gibt es nciht auch eine Swap oder Move Function ?

Laut meiner Delphi Hilfe gibts ne Move Function die müste auch gehn.

Zitat:


Die Methode Move ändert die Position eines Elements im Array Items.

procedure Move(CurIndex, NewIndex: Integer);

Beschreibung

Mit Move kann ein Element von der Position CurIndex an die Position NewIndex verschoben werden. Die Numerierung der Indexangaben CurIndex und NewIndex beginnt bei Null für das erste Element.

xZise 25. Mär 2006 20:29

Re: Items einer TListView tauschen
 
Zitat:

Zitat von Corpsman
Laut meiner Delphi Hilfe gibts ne Move Function die müste auch gehn.

Wäre net, wenn du das mal genauer erläutern würdest...

DGL-luke 25. Mär 2006 20:33

Re: Items einer TListView tauschen
 
Na probiers doch einfach mal...

Delphi-Quellcode:
procedure OneUp(Item: TListViewItem);
begin
Item.Move(Item.Index-1);
end;
Das hier sollte schon seinen Dienst tun.

xZise 25. Mär 2006 20:45

Re: Items einer TListView tauschen
 
Liste der Anhänge anzeigen (Anzahl: 2)
Naja... Mit TListViewItem meckert er rum (kennt er nicht) und TListItem kennt die methode Move net!

DGL-luke 25. Mär 2006 20:59

Re: Items einer TListView tauschen
 
tatsächlich... hätt ich doch zuvor selber ausprobieren sollen... dann musst dus doch rausnehmen und wieder einfügen.

Delphi-Quellcode:
i := ListView1.Selected.Index;
s := ListView1.Selected.Caption;
Listview1.Selected.Delete;
Listview1.Items.Insert(i-1).Caption := s;

SirThornberry 25. Mär 2006 22:06

Re: Items einer TListView tauschen
 
Das Prinzip wurde ja bereits erklärt. Du musst im Prinzip über eine zwischenvariable die Werte der Items tauschen. Dabei solltest du aber auch beachten das du nicht nur die Captions, sondern auch die SubItems und Data tauschst.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:49 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz