![]() |
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 ![]() |
Re: Drag & Drop von Listbox in Explorer
Zitat:
IMHO brauchst du nur den Code an der Stelle
Delphi-Quellcode:
im Ereignis onMouseMove in der ListBox anpassen. Also du übergibst der SelFileList deine versteckten Pfade zu den Dateien.
SelFileList := TStringList.Create;
try SelFileList.Capacity := SelCount; for i := 0 to Items.Count - 1 do if Selected[i] then SelFileList.Add(Items[i]); |
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);
|
Re: Drag & Drop von Listbox in Explorer
Was funktioniert nicht, kommt eine Fehlermeldung oder kannst du das Programm nicht kompilieren?
|
Re: Drag & Drop von Listbox in Explorer
Beim Kompilieren kommt dann:
Inkompatible Typen: Listbox und pDropSource |
Re: Drag & Drop von Listbox in Explorer
Liste der Anhänge anzeigen (Anzahl: 1)
Das kommt, weil du
Delphi-Quellcode:
vergessen hast. Hier das Programm dazu, wie du siehst geht es auch mit einer Listbox.
TForm1 = class(TForm, IDropSource)
|
Re: Drag & Drop von Listbox in Explorer
Super, danke schön :thumb:
|
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:
Hier kommt nie ein TRUE bei mir raus, ergo arbeitet er die folgenden Befehle nicht ab.
if (SelCount > 0) and (csLButtonDown in ControlState)
and ((Abs(X - FDragStartPos.x) >= Threshold) or (Abs(Y - FDragStartPos.y) >= Threshold)) then begin... Ich habe so die Vermutung, dass der Grund dafür der ist dass ich auch folgenden code nutze: ![]() |
Re: Drag & Drop von Listbox in Explorer
:duck: *push* :duck: |
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. |
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