Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Drag&Drop: ShellListView ==> ListBox od. ListView - ListView (https://www.delphipraxis.net/15367-drag-drop-shelllistview-%3D%3D-listbox-od-listview-listview.html)

Matze 27. Jan 2004 12:39


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;

mirage228 27. Jan 2004 13:50

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

Matze 27. Jan 2004 15:37

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 ;) )

mirage228 27. Jan 2004 16:20

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).

Matze 28. Jan 2004 09:13

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:
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;
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.

Und ich will ja keine Spalten, sondern zeilen.

Kann mir da vielleicht jemand helfen?


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:56 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