Delphi-PRAXiS
Seite 1 von 3  1 23      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Drag & Drop von Listbox in Explorer (https://www.delphipraxis.net/106624-drag-drop-von-listbox-explorer.html)

Aurelius 14. Jan 2008 08:13


Drag & Drop von Listbox in Explorer
 
Hi DPler :hi:

ich habe versch. Einträge in einer normalen Listbox. Hinter jedem Eintrag "versteckt" sich ein kompletter Pfad zu einer Datei. Wie kann ich es nun realisieren dass, wenn ich einen Eintrag per Drag & Drop in den Explorer ziehe, die jeweilige Datei in den jeweiligen Ordner zu kopieren?

Gefunden habe ich dazu bis jetzt nur http://swissdelphicenter.ch/de/showcode.php?id=2335, aber das funktioniert so ja nicht mit einer Listbox. Eigenlich muss ich nur wissen wie ich den Pfad des Ordners, in den ich hineindragge, herausbekomme. Den Rest kann ich ja mit FileCopy(oder wie der Befehl jetzt heißt) machen.

bitsetter 14. Jan 2008 12:05

Re: Drag & Drop von Listbox in Explorer
 
Zitat:

Zitat von xX0815Xx
aber das funktioniert so ja nicht mit einer Listbox.

Hi,

IMHO brauchst du nur den Code an der Stelle
Delphi-Quellcode:
      SelFileList := TStringList.Create;
      try
        SelFileList.Capacity := SelCount;
        for i := 0 to Items.Count - 1 do
          if Selected[i] then SelFileList.Add(Items[i]);
im Ereignis onMouseMove in der ListBox anpassen. Also du übergibst der SelFileList deine versteckten Pfade zu den Dateien.

Aurelius 14. Jan 2008 12:08

Re: Drag & Drop von Listbox in Explorer
 
Bie dieser Zeile funktioniert das ganze aber nicht.
Delphi-Quellcode:
DoDragDrop(DataObject, Self, DROPEFFECT_COPY, Effect);DoDragDrop(DataObject, Self, DROPEFFECT_COPY, Effect);

bitsetter 14. Jan 2008 12:15

Re: Drag & Drop von Listbox in Explorer
 
Was funktioniert nicht, kommt eine Fehlermeldung oder kannst du das Programm nicht kompilieren?

Aurelius 14. Jan 2008 12:20

Re: Drag & Drop von Listbox in Explorer
 
Beim Kompilieren kommt dann:

Inkompatible Typen: Listbox und pDropSource

bitsetter 14. Jan 2008 13:03

Re: Drag & Drop von Listbox in Explorer
 
Liste der Anhänge anzeigen (Anzahl: 1)
Das kommt, weil du
Delphi-Quellcode:
TForm1 = class(TForm, IDropSource)
vergessen hast. Hier das Programm dazu, wie du siehst geht es auch mit einer Listbox.

Aurelius 14. Jan 2008 13:44

Re: Drag & Drop von Listbox in Explorer
 
Super, danke schön :thumb:

Aurelius 14. Jan 2008 21:06

Re: Drag & Drop von Listbox in Explorer
 
So, ich hab mal versucht das Ganze in mein Programm einzubauen nur leider funktioniert es nicht.
Delphi-Quellcode:
    if (SelCount > 0) and (csLButtonDown in ControlState)
      and ((Abs(X - FDragStartPos.x) >= Threshold)
      or (Abs(Y - FDragStartPos.y) >= Threshold)) then
      begin...
Hier kommt nie ein TRUE bei mir raus, ergo arbeitet er die folgenden Befehle nicht ab.

Ich habe so die Vermutung, dass der Grund dafür der ist dass ich auch folgenden code nutze: http://www.delphipraxis.net/internal...869&highlight=

Aurelius 16. Jan 2008 08:35

Re: Drag & Drop von Listbox in Explorer
 
:duck: *push* :duck:

NickelM 16. Jan 2008 09:18

Re: Drag & Drop von Listbox in Explorer
 
Also ich glaube es liegt in der If..then Anweisung. Du kannst mit Klammern festlegen, was zusammen gehört und was nicht.

Du willst ja das die obere Zeile und die 2 Unteren Zusammen gehörten, dann must du das so machen

if ((SelCount > 0) and (csLButtonDown in ControlState))
and (((Abs(X - FDragStartPos.x) >= Threshold)
or (Abs(Y - FDragStartPos.y) >= Threshold))) then
begin...

Oder habe ich es falschverstahnden???


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:58 Uhr.
Seite 1 von 3  1 23      

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