AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Delphi Drag&Drop innerhalb eines VirtualTree und in den Explorer
Thema durchsuchen
Ansicht
Themen-Optionen

Drag&Drop innerhalb eines VirtualTree und in den Explorer

Ein Thema von Gausi · begonnen am 29. Dez 2021 · letzter Beitrag vom 31. Dez 2021
 
Benutzerbild von Gausi
Gausi

Registriert seit: 17. Jul 2005
903 Beiträge
 
Delphi 11 Alexandria
 
#3

AW: Drag&Drop innerhalb eines VirtualTree und in den Explorer

  Alt 31. Dez 2021, 07:16
Sowas dachte ich zuerst auch, aber die Sache mit dem Explorer ist ja anders.

Erstens ist der Explorer eine Anwendung, die natürlich selbst entscheiden kann, was sie mit den angebotenen Dateien machen möchte (d.h. je nach Userwunsch bzw. Modifier-Taste). Das kann ich innerhalb meiner Anwendung ja auch: Fange ich an zu draggen, und drücke währenddessen mal Shift und mal nicht, erscheint als Drag-Hint über meiner Zielkategorie ein "Verschieben" oder "Kopieren", bzw. kann ich im DragOver den DragEffect anpassen. Wenn dieser DragEffect dann zu einem der "AllowedEffects" passt, funktioniert der Drop - sonst nicht.
Ebenso könnte ich anhand der enthaltenen Dateien die eine oder andere Aktion vorschlagen (das macht schätze ich der Explorer bei der Standard-Aktion: Wenn Quell- und Ziel-Laufwerk gleich sind verschieben als Standard, sonst kopieren). Das mache ich bisher nicht, sollte aber möglich sein.

Der Punkt ist aber: der User kann im Explorer ja immer beides, weil der Explorer beim Start des Vorgangs dem Konstrukt mitgibt, dass man kopieren/verschieben/wasauchimmer darf. Das Ziel (oft wieder der Explorer, aber ein anderes Fenster) darf dann entscheiden, welche Aktion tatsächlich ausgeführt werden soll.

Und diese Auswahlmöglichkeit möchte ich "dynamisch" anpassen. D.h. ich suche nach einer Möglichkeit, dass die Quelle des Vorgangs beim DragOver über ein (fremdes) Ziel die erlaubten Möglichkeiten anpassen kann.

Denn ein "Move" in den Explorer (also einen anderen Ordner) wäre in meinem Anwendungsfall absolut nicht intuitiv, sondern kontraproduktiv und würde regelmäßig zu "Datenverlust" führen - weil die Dateien plötzlich nicht mehr da sind, so man sie erwarten würde.
Being smart will count for nothing if you don't make the world better. You have to use your smarts to count for something, to serve life, not death.
  Mit Zitat antworten Zitat
 

 

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 16:31 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-2025 by Thomas Breitkreuz