![]() |
Drag&Drop: ShellListView ==> ListBox od. ListView - L
Hi!
Wie kann ich per Drag&Drop Dateien in eine ListBox ziehen, sodass der Pfad mit Dateinamen in der ListBox steht? Ich habe das hier, am Beispiel Panel, gefunden, allerdings weiß ich nicht, was ich in die Lücke schreiben muss. :(
Delphi-Quellcode:
procedure TMainWindow.panelDragDrop(Sender, Source: TObject; X,
Y: Integer); begin if (Source is TShellListView) then begin //Daten auslesen und darstellen end; end; procedure TMainWindow.panelDragOver(Sender, Source: TObject; X, Y: Integer; State: TDragState; var Accept: Boolean); begin Accept := (Source is TShellListView); end; |
Re: Drag&Drop: ShellListView ==> ListBox
Moin,
Einfach die einzelnen Source-Teile in das enstsprechende Ereignis der ListBox eintragen (das wären onDragDrop und onDragOver). mfG mirage228 |
Re: Drag&Drop: ShellListView ==> ListBox
Danke.
Mein Problem ist dann nur, wie sag ich, dass, wenn ich bei ShellListView anfange zu draggen :mrgreen: , dann muss ich doch die Varialbe (Dateinamen) in einen String schreiben. Wenn ich bei der ListBox droppe :mrgreen: , dann soll der String da reingeschrieben werden. Ich will auch mehrere Dateien auf einmal rüberziehen, nur weiß ich gar nicht, wie ich das anstellen soll :cry: (Das rüberziehen mit der Maus kann ich ;) ) |
Re: Drag&Drop: ShellListView ==> ListBox
Caste doch einfach Source nach TShellTreeView und Guck die Variable "Path" (oder so) an (Optional noch mit FileExists() auf Gültigkeit prüfen).
|
Re: Drag&Drop: ShellListView ==> ListBox
Geht bei mir ja überhaupt nicht :(
Ich hab mir gedacht, in nehm ein eifaches Beispiel, das die markierten Einträge von ListView1 nach ListView2 gibt. Net mal das kann ich :cry:
Delphi-Quellcode:
Wenn ich nun von ListView2 in diese selber ziehe, dann wir eine neue Spalte mit dem Titel, der gezogen wird, angelegt. Das ist natürlich auch Müll.
procedure TForm1.ListView2DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean); begin if Sender = ListView1 then Accept := true else Accept := false; end; procedure TForm1.ListView2DragDrop(Sender, Source: TObject; X, Y: Integer); var i: integer; Item: TListItem; begin if Source is TListView then for i := 0 to ListView1.SelCount do if ListView1.Items[i].Selected then begin Item := ListView2.Items.Add; Item.Caption := ListView1.Items[i].Caption; end; end; Und ich will ja keine Spalten, sondern zeilen. Kann mir da vielleicht jemand helfen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:13 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