AGB  ·  Datenschutz  ·  Impressum  







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

Einträge in ListBox verschieben (Drag&Drop)

Ein Thema von Tpercon · begonnen am 27. Jun 2002 · letzter Beitrag vom 27. Jun 2002
Antwort Antwort
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#1

Einträge in ListBox verschieben (Drag&Drop)

  Alt 27. Jun 2002, 16:13
Wie kann man die Einträge in der ListBox Komponente untereinander verschieben?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2
  Alt 27. Jun 2002, 16:26
Keine Ahnung, ob der Code was taugt. hab eich aus meiner Code-Schnipsel-Sammlung:
Code:
OnMouseDown:
if Button = mbLeft then
begin
  // Starten des Drag'n'Drop-Vorgangs der playlisteinträge
  if Playlist.ItemAtPos(Point(x, y), True) > -1 then
  begin
    Playlist.BeginDrag(False);
  end;
end;

OnDragOver:
begin
  NewItemIndex := Playlist.TopIndex + (Y div Playlist.ItemHeight);
  if NewItemIndex > Playlist.Items.Count -1 then
    NewItemIndex := Playlist.Items.Count -1;
  Playlist.Items.Move(Playlist.ItemIndex, NewItemIndex);
  Playlist.ItemIndex := NewItemIndex;
  Hauptfenster.Filelist.Items.Move(Playlist.ItemIndex, NewItemIndex);
  Hauptfenster.Filelist.ItemIndex := NewItemIndex;
  Accept := True;
end;
by Daniel B; Form.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Alfons_G

Registriert seit: 7. Jun 2002
Ort: München
296 Beiträge
 
Delphi 2007 Architect
 
#3
  Alt 27. Jun 2002, 16:33

schau Dir mal diesen Code an:
Ich hatte bei diesem Projekt statt der normalen ListBox die LMDListBox aus den LMD-Tools verwendet, die Vorgehensweise ist jedoch dieselbe.
Code:
procedure TMainForm.LMDListBox1DragOver(Sender, Source: TObject; X,
  Y: Integer; State: TDragState; var Accept: Boolean);
begin
  if Source is TLMDListBox then
    Accept := true;
end;

procedure TMainForm.LMDListBox1DragDrop(Sender, Source: TObject; X,
  Y: Integer);
var
  i: integer;
begin
  i := LMDListBox1.ItemAtPos (Point(x,y),true);
  if i > -1 then
    begin
    LMDListBox1.Items.Move (Zeile ,i);
  end;
end;

procedure TMainForm.LMDListBox1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
  LPos: integer;
begin
  LPos := LMDListBox1.ItemAtPos (Point(x,y),true) ;
  if LPos > -1 then
  begin
    try
      Zeile := LPos;
      LMDListBox1.BeginDrag (false);
      // sonstwas machen ...
    except
      // oder auch nicht...
    end;
  end;
end;


by Daniel B; Form.
Alfons Grünewald



Alfons Grünewald
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#4
  Alt 27. Jun 2002, 17:29
Hi,

Hier findest du auch noch ein Beispiel (mit Autoscroll Funktion)

http://www.swissdelphicenter.ch/de/showcode.php?id=200


tom
Thomas
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#5
  Alt 27. Jun 2002, 18:39
Hi

Danke euch. Ich hab die Version von Alfons G genommen.

Gruß
  Mit Zitat antworten Zitat
Antwort Antwort


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 18:43 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