AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Items in einer Listbox verschieben

Ein Thema von SkyLord · begonnen am 6. Okt 2003 · letzter Beitrag vom 9. Okt 2003
Antwort Antwort
Seite 1 von 2  1 2      
SkyLord

Registriert seit: 5. Okt 2003
37 Beiträge
 
#1

Items in einer Listbox verschieben

  Alt 6. Okt 2003, 19:32
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.
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#2

Re: Items in einer Listbox verschieben

  Alt 6. Okt 2003, 19:35
Items.Move
Sorted sollte, falls sein

Selbe verfahren wie in einer StringList
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
SkyLord

Registriert seit: 5. Okt 2003
37 Beiträge
 
#3

Re: Items in einer Listbox verschieben

  Alt 6. Okt 2003, 19:47
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
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#4

Re: Items in einer Listbox verschieben

  Alt 6. Okt 2003, 19:52
Bsp:
deine Liste heißt lst.


lst.Items.Move([aktuelle Position], [Neue Position]);
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
SkyLord

Registriert seit: 5. Okt 2003
37 Beiträge
 
#5

Re: Items in einer Listbox verschieben

  Alt 6. Okt 2003, 20:26
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
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#6

Re: Items in einer Listbox verschieben

  Alt 6. Okt 2003, 20:56
aktuelle Position meine ich den Eintrag den du verschieben möchtest
der kann zum Bsp. der gewählte sein.

lst.Items.Move(lst.ItemIndex, lst.ItemIndex + 1); Verschiebt den gewählten eintrag um eins nach unten
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
SkyLord

Registriert seit: 5. Okt 2003
37 Beiträge
 
#7

Re: Items in einer Listbox verschieben

  Alt 7. Okt 2003, 17:45
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
  Mit Zitat antworten Zitat
neolithos

Registriert seit: 31. Jul 2003
Ort: Dresden
1.386 Beiträge
 
Delphi 7 Architect
 
#8

Re: Items in einer Listbox verschieben

  Alt 7. Okt 2003, 18:58
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 ...
- ciao neo -
Es gibt niemals dumme Fragen, sondern nur dumme Antworten!
  Mit Zitat antworten Zitat
SkyLord

Registriert seit: 5. Okt 2003
37 Beiträge
 
#9

Re: Items in einer Listbox verschieben

  Alt 7. Okt 2003, 19:52
Super, danke. es klappt.
Ihr seid echt voll nett hier, danke
  Mit Zitat antworten Zitat
iaby

Registriert seit: 30. Nov 2002
Ort: BW
258 Beiträge
 
#10

Re: Items in einer Listbox verschieben

  Alt 9. Okt 2003, 17:06
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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:26 Uhr.
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