AGB  ·  Datenschutz  ·  Impressum  







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

Drag&Drop: Startpos immer = Droppos

Ein Thema von Nils_13 · begonnen am 12. Mär 2007 · letzter Beitrag vom 12. Mär 2007
Antwort Antwort
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#1

Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 15:56
Hi,

die Startposition ist immer gleich der Dropposition bei einem Drag&Drop in einer Listbox.
Warum ? Das darf nämlich nicht sein....
Delphi-Quellcode:
procedure TfrmMain.lbListDragOver(Sender, Source: TObject; X, Y: Integer;
  State: TDragState; var Accept: Boolean);
begin
  Accept := Source = lbList;
end;

procedure TfrmMain.lbListDragDrop(Sender, Source: TObject; X, Y: Integer);
var DropPosition : Integer;
    StartPosition : Integer;
    i : Integer;
    DropPoint : TPoint;
    temp : TAudioFile;
begin
  DropPoint.X := X;
  DropPoint.Y := Y;
  with Source as TListBox do
  begin
    StartPosition := ItemAtPos(StartingPoint,True);
    DropPosition := ItemAtPos(DropPoint,True);
    temp := fFiles[startposition];
    for i := startposition downto dropposition + 1 do
    begin
      fFiles[i] := fFiles[i-1];
    end;

    for i := startposition to dropposition - 1 do
    begin
      fFiles[i] := fFiles[i+1];
    end;
    fFiles[dropposition] := temp;
    UpdateListBox;
  end;
end;
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#2

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 16:39
was ist denn StartingPoint
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#3

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 16:42
Ganz vergessen:
Delphi-Quellcode:
StartingPoint : TPoint;
und im MouseDown der Listbox:
  StartingPoint.X := X;
  StartingPoint.Y := Y;
  Mit Zitat antworten Zitat
bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#4

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 16:43
Zitat von Nils_13:
:oops: Ganz vergessen:
Delphi-Quellcode:
StartingPoint : TPoint;
und im MouseDown der Listbox:
  StartingPoint.X := X;
  StartingPoint.Y := Y;
okay, das gehört nicht ins mousedown sondern ins startdrag
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#5

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 16:47
Und was soll ich dann für X und Y einsetzen ? Das gibt es bei StartDrag nicht.
  Mit Zitat antworten Zitat
Benutzerbild von ste_ett
ste_ett

Registriert seit: 10. Sep 2004
Ort: Dülmen
464 Beiträge
 
Delphi 7 Professional
 
#6

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 16:50
Zitat von Nils_13:
Und was soll ich dann für X und Y einsetzen ? Das gibt es bei StartDrag nicht.
Delphi-Quellcode:
var
  CurPos: TPoint;


  if (GetCursorPos(CurPos)) then
  begin
     := CurPos.X;
  end;
Stefan
"Geht nicht!" ist keine Fehlerbeschreibung und "Hab ich schon versucht!" keine Antwort!

Hey, it compiles! Ship it!
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#7

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 16:53
Hallo,

bekommst Du den Index des Items nicht über die ItemIndex-Eigenschaft der Listbox?

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#8

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 16:56
Ok, über ItemIndex ist StartPos korrekt, aber wieso ist DropPos immer noch = StartPos ?
  Mit Zitat antworten Zitat
xaromz

Registriert seit: 18. Mär 2005
1.682 Beiträge
 
Delphi 2006 Enterprise
 
#9

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 17:03
Hallo,
Zitat von Nils_13:
Ok, über ItemIndex ist StartPos korrekt, aber wieso ist DropPos immer noch = StartPos ?
sind X und Y Clientkoordinaten oder Screenkoordinaten (hab gerade kein Delphi zur Hand)?

Gruß
xaromz
I am a leaf on the wind - watch how I soar
  Mit Zitat antworten Zitat
Nils_13

Registriert seit: 15. Nov 2004
2.647 Beiträge
 
#10

Re: Drag&Drop: Startpos immer = Droppos

  Alt 12. Mär 2007, 17:12
lbListDragDrop(Sender, Source: TObject; X, Y: Integer); Ich denke es bezieht sich auf die Listbox.
  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 01:47 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