AGB  ·  Datenschutz  ·  Impressum  







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

Copy statt Move zwischen zwei VSTs

Ein Thema von writeln · begonnen am 10. Sep 2008 · letzter Beitrag vom 10. Sep 2008
Antwort Antwort
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#1

Copy statt Move zwischen zwei VSTs

  Alt 10. Sep 2008, 07:54
Ich habe schon reichlich gegoogelt, habe aber noch keine befriedigende Lösung gefunden...

Auf einer Form habe ich zwei VirtualExplorerListViewEx Komponenten, die unterschiedliche Ordner anzeigen.
Wenn Drag&Drop aktiviert ist, lassen sich Dateien zwischen den Ordnern verschieben.

Soweit so gut.

Ich möchte nun aber Dateien kopieren, ohne auf der Tastatur [Strg] zu drücken.
Dazu habe ich im Ereignis onDragOver Effect:= DROPEFFECT_COPY; gesetzt.

Trotzdem findet immer ein Move statt.

Auch wenn ich im Ereignis onDragDrop manuell kopiere...

Delphi-Quellcode:
procedure TForm1.VST1DragDrop(
  Sender: TBaseVirtualTree; Source: TObject; DataObject: IDataObject;
  Formats: TFormatArray; Shift: TShiftState; Pt: TPoint;
  var Effect: Integer; Mode: TDropMode);
begin
  // Effect:= DROPEFFECT_COPY;
  if (Sender = VST1) and (Source = VST2)
  then begin
    Caption:= (VST2.SelectedPaths[0]);
    CopyFileTo(VST2.SelectedPaths[0],
              VST1.RootFolderCustomPath + '\'
              + VST2.SelectedFiles[0]);

  end;
end;
.. wird anschließend von den VSTs noch das Move ausgeführt.

Was habe ich vergessen???
Sascha
...und ich sach noch: "drück nich auf F9"...
  Mit Zitat antworten Zitat
Benutzerbild von toms
toms
(CodeLib-Manager)

Registriert seit: 10. Jun 2002
4.648 Beiträge
 
Delphi XE Professional
 
#2

Re: Copy statt Move zwischen zwei VSTs

  Alt 10. Sep 2008, 08:36
Hallo,

Was passiert, wenn Effect := DROPEFFECT_NONE gesetzt wird ?
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von writeln
writeln

Registriert seit: 30. Aug 2004
Ort: Hamburg
28 Beiträge
 
#3

Re: Copy statt Move zwischen zwei VSTs

  Alt 10. Sep 2008, 10:48
Jooo! das war ein guter Tipp!

Wenn im onDragDrop Event Effect auf DROPEFFECT_NONE eingestellt wird, klappt es auch mit dem Kopieren per selbst definierter Routine, bzw das anschließende Move unterbleibt.
Genau so soll es sein.

Vielen Dank Toms!


Delphi-Quellcode:
procedure TForm1.VST1DragDrop(
  Sender: TBaseVirtualTree; Source: TObject; DataObject: IDataObject;
  Formats: TFormatArray; Shift: TShiftState; Pt: TPoint;
  var Effect: Integer; Mode: TDropMode);
begin
  if (Sender = VST1) and (Source = VST2)
  then begin
    Caption:= (VST2.SelectedPaths[0]);
    CopyFileTo(VST2.SelectedPaths[0],
              VST1.RootFolderCustomPath + '\'
              + VST2.SelectedFiles[0]);

  end;
  Effect:= DROPEFFECT_NONE;
  VST1.Active:= false;
  VST1.Active:= true;
end;

procedure TForm1.VST1DragOver(
  Sender: TBaseVirtualTree; Source: TObject; Shift: TShiftState;
  State: TDragState; Pt: TPoint; Mode: TDropMode; var Effect: Integer;
  var Accept: Boolean);
begin
  Accept:= true;
end;

procedure TForm1.VST2DragOver(Sender: TBaseVirtualTree; Source: TObject;
  Shift: TShiftState; State: TDragState; Pt: TPoint; Mode: TDropMode;
  var Effect: Integer; var Accept: Boolean);
begin
  Accept:= true;
end;
Sascha
...und ich sach noch: "drück nich auf F9"...
  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 00:09 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