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 in einer Listbox verschieben (https://www.delphipraxis.net/9874-items-einer-listbox-verschieben.html)

SkyLord 6. Okt 2003 19:32


Items in einer Listbox verschieben
 
N'abend,

ich versuche gerade ein Programm mit Delphi 5 zu schreiben, dass folgendes kann:
Eine Listbox in der verschiedene Items stehen. Wenn ich ein Item anklicke und nach oben und unten bewege verschiebt es sich innerhalb der Listbox. Wenn ich die Maustaste wieder loslasse gliedert es sich dort in der Listbox ein, wo es zu diesem Zeitpunkt befindet.
Kann man das verstehen. Das ist ähnlich wie beim Media Player in der medienbibliothek.
Wäre nett wenn jemand sagen kann wie das geht.

Vielen dank schon im Vorraus.

neolithos 6. Okt 2003 19:35

Re: Items in einer Listbox verschieben
 
Items.Move
Sorted sollte, falls sein

Selbe verfahren wie in einer StringList

SkyLord 6. Okt 2003 19:47

Re: Items in einer Listbox verschieben
 
Hallo neolithos,

das habe ich jetzt nicht ganz verstanden. Ich bin noch recht neu im Thema Delphi und Programmieren.
Wäre echt nett wenn du mir den gesamten BEfehl hinschrieben könntest.
Vielen Dank

neolithos 6. Okt 2003 19:52

Re: Items in einer Listbox verschieben
 
Bsp:
deine Liste heißt lst.


Delphi-Quellcode:
lst.Items.Move([aktuelle Position], [Neue Position]);

SkyLord 6. Okt 2003 20:26

Re: Items in einer Listbox verschieben
 
Hallo Neo.

Aber was ist bei dir aktuelle Position. Das muss ich ja wahrscheinlich erst definieren.
Weil so wie du das sagst klappt es nicht.
Außerdem wo genau muss ich den Befehl einfügen? Als procedure für einen Button ist ja quatsch.

Danke für Hilfe, auch wenn's ein bißchen Mühselig zu sein scheint.
Versuch mir doch einfach einen kompletten Quelltext zu schicken mit dem das für eine Listbox funktioniert.

Ich danke dir

neolithos 6. Okt 2003 20:56

Re: Items in einer Listbox verschieben
 
aktuelle Position meine ich den Eintrag den du verschieben möchtest
der kann zum Bsp. der gewählte sein.

Delphi-Quellcode:
lst.Items.Move(lst.ItemIndex, lst.ItemIndex + 1);
Verschiebt den gewählten eintrag um eins nach unten

SkyLord 7. Okt 2003 17:45

Re: Items in einer Listbox verschieben
 
Ja gut. Das hilft mir schon ein bißchen weiter.
Aber ich glaube ich habe meine Frage noch nicht präzise genug formuliert:
Wenn ich ein Item mit der Maus anklicke, die Maus gedrückt halte und die MAus nach oben oder unten bewege, dann soll sich das Item ebenfalls mitbewegen und entsprechend die Positionen in der Listbox verrutschen.
Genau wie im Windows Explorer.
Verstehst du jetzt? Tut mir leid dass ich dich damit so nerve, aber es ist wirklich wichtig für mich das zu wissen.

Danke nochmal

neolithos 7. Okt 2003 18:58

Re: Items in einer Listbox verschieben
 
Für Anfänger empfehle ich die Sache mit den Schalter.

Und die andere Sache (Drag&Drop) ist nicht so einfach...

1. Stelle DragMode der Liste auf dmAutomatic.
2. Lege das Ereignis DragOver der ListBox an
Delphi-Quellcode:
procedure TForm1.ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  // AutoScroll und anzeigen wo der Eintrag hin soll
  // ganz du ja später klären
  // das ist das komplizierte daran
  Accept := Source = ListBox1; // bist du eintrag von mir
end;
3. Lege das Ereignis DragDrop der ListBox an
Delphi-Quellcode:
procedure TForm1.PWListBox1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var iNewPos : Integer;
begin
  with PWListBox1 do
    begin
      iNewPos := ItemAtPos(Point(x, y), true); // ermittle Eintrag unter maus
      if iNewPos = -1 then // kein Eintrag darunter
         iNewPos := Items.Count - 1; // also werde letzter
      Items.Move(ItemIndex, iNewPos); // Neue Position
      ItemIndex := iNewPos;
    end;
end;
Lies die Hilfe noch mal dazu ...

SkyLord 7. Okt 2003 19:52

Re: Items in einer Listbox verschieben
 
Super, danke. es klappt.
Ihr seid echt voll nett hier, danke

iaby 9. Okt 2003 17:06

Re: Items in einer Listbox verschieben
 
wie heißt den der befehl, mit dem ich in einer listview items verschieben kann?
move gibt es dort ja nicht! habs zumindest nicht gefunden!
gruss,
iaby


Alle Zeitangaben in WEZ +1. Es ist jetzt 16:07 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