Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Multiselect Dateien und Verzeichnisse (https://www.delphipraxis.net/183683-multiselect-dateien-und-verzeichnisse.html)

GoTo0815 28. Jan 2015 12:45

Multiselect Dateien und Verzeichnisse
 
Guten Tag,

wie die Überschrift sagt, bin ich auf der Suche "Dateien und Verzeichnisse" in einem Multiselect Dialog auszuwählen.
Ich habe viel gelesen, aber nichts gefunden.

Ziel ist es dem User einen Dialog zum löschen von Daten auf einem USB-Stick anzubieten. Hierbei macht es natürlich keinen Sinn, wenn der User erst die Verzeichnisse und in einem zweiten Schritt die restlichen Dateien auswählen zu lassen.

Mich interesiert an dieser Stelle nicht die Funktionalität des Löschens, sondern nur der Dialog bei dem als Ergebnis in der Stringliste sowohl Verzeichnisse als auch Dateien aufgelistet sind.

Wer noch den Sinn wissen will: Ich deaktiviere einen Hardwareschreibschutz eines USB Controllers per Software. Leider aber kriegt beispielsweise der Explorer von Windows 8 nicht mit, dass der Schreibschutz aufgehoben wurde. Ich kann zwar in den Explorer per Strg-C Dateien hineinkopieren, aber ich kan keine Dateien löschen. Über meine Software mit beispielsweise "DeleteFile" schon. Also möchte ich das Löschen Softwareseitig anbieten. Möglichst aber unkompliziert.

Bin über Euer Feedback sehr dankbar. Auch über Hinweise den Explorer zu einem Refresh bzgl. des nicht mehr schreibgeschützten Mediums zu zwingen.

Gruß
Hendrik

mm1256 28. Jan 2015 14:57

AW: Multiselect Dateien und Verzeichnisse
 
Gibt es einen besonderen Grund, warum nimmst du keinen TFileOpenDialog (mit MultiSelect unmd Ordnerauswahl in den Options) nimmst?

himitsu 28. Jan 2015 15:58

AW: Multiselect Dateien und Verzeichnisse
 
Der Vista-OpenFileDialog kann doch nur entweder Dateien oder Verzeichnisse auswählen? :gruebel:

Perlsau 28. Jan 2015 16:50

AW: Multiselect Dateien und Verzeichnisse
 
Was ist mit FindFirst und FindNext?

DeddyH 28. Jan 2015 17:03

AW: Multiselect Dateien und Verzeichnisse
 
Und wie willst Du das in einen Standard-Dialog einbauen?

Dejan Vu 28. Jan 2015 17:54

AW: Multiselect Dateien und Verzeichnisse
 
Will er?

Nimm einen eigenen Dialog: Links bildest Du den Explorer nach, rechts die 'Sammelliste' für ausgewählte Dateien.
Links wählst Du Verzeichnisse und/oder Dateien aus und ziehst sie nach rechts in die Sammelliste.

Wenn Du fertig bist, drückst Du auf 'Löschen' und dann werden alle Dateien/Verzeichnisse in der Sammelliste gelöscht.

mm1256 29. Jan 2015 07:10

AW: Multiselect Dateien und Verzeichnisse
 
Zitat:

Zitat von himitsu (Beitrag 1288086)
Der Vista-OpenFileDialog kann doch nur entweder Dateien oder Verzeichnisse auswählen? :gruebel:

Richtig! Ich hab ja auch nicht behauptet, dass es ohne Änderung geht. ("GetResults" überschreiben....)

GoTo0815 29. Jan 2015 08:38

AW: Multiselect Dateien und Verzeichnisse
 
Guten Morgen,

ersteinmal vielen Dank an alle die sich um eine Lösung bemühen!

Den TOpenFileDialog habe ich aktuell auch verwendet.
@mm1256: Kannst Du das näher erläutern mit dem Überschreiben von "GetResults?"

mm1256 29. Jan 2015 13:48

AW: Multiselect Dateien und Verzeichnisse
 
[QUOTE=HendrikSturm;@mm1256: Kannst Du das näher erläutern mit dem Überschreiben von "GetResults?"[/QUOTE]

Leider kein vollständiges Beispiel, hatte nur mal kurz einen Blick auf die Source geworfen und gesehen, dass GetResults für die Rückgabe der FileList verantwortlich ist. Demzufolge müsste es in etwa so klappen:

Delphi-Quellcode:
type
  TMyFileOpenDialog = class(TCustomFileDialog)
    ...
    function GetResults: HResult; override;
    ...
  end;

Redeemer 29. Jan 2015 14:28

AW: Multiselect Dateien und Verzeichnisse
 
Kann man mit TOpenDialog überhaupt Verzeichnis auswählen?

himitsu 29. Jan 2015 14:31

AW: Multiselect Dateien und Verzeichnisse
 
Zitat:

Zitat von Redeemer (Beitrag 1288183)
Kann man mit TOpenDialog überhaupt Verzeichnis auswählen?

Mit TOpenDialog nicht, aber neuderdings kapselt Delphi beim TOpenDialog intern den TOpenFileDialog, wenn es sich beim Windows um Vista+ handelt.

siehe TOpenFileDialog.Options


Ansonsten gibt es halt noch den Ordner-Auswahldialog, aber den kann man nicht gut bedienen.

Dejan Vu 29. Jan 2015 14:32

AW: Multiselect Dateien und Verzeichnisse
 
'GetResults' liefert doch eh nur die Liste der ausgewaehlten Dateien. Mir waere nicht bewusst, das man hier die Usability veraendern kann.

GoTo0815 18. Feb 2015 10:09

AW: Multiselect Dateien und Verzeichnisse
 
Guten Morgen,

auch wenn das jett nicht meine eigene Lösung ist, so ist es wenigstens eine Lösung und die will ich anderen suchenden nicht verheimlichen.
Ich habe mir die ShellBrowser Components von Jam-Software gekauft.
Mit der Komponente TJamShellList konnte ich das dann in einem eigenen Dialog zu einer Lösung bringen.

Dann ist das natürlich extrem einfach, denn die Komponente unterscheidet bei den SelectedItems erst einmal nicht ob Verzeichnis oder Datei selektiert wurde.

Code:
    JamShellList1.Path .= 'c:\bla\MeinVerzeichnis\';
    // ...
    if JamShellList1.SelectedFiles.Count >0 then
    begin
      for i := 0 to JamShellList1.SelectedFiles.Count -1 do
      begin
        // Hier das Löschen der selektierten Verzeichnisse und Dateien implementieren
      end;
    end;


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