AGB  ·  Datenschutz  ·  Impressum  







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

SelectDirectory

Ein Thema von Walter Landwehr · begonnen am 13. Apr 2018 · letzter Beitrag vom 14. Apr 2018
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#11

AW: SelectDirectory

  Alt 13. Apr 2018, 22:49
SelDir() Update

Delphi-Quellcode:
function SelDir ( StartPath : String; var SelectedDir : String ) : Boolean;
var
 tmp : TArray<string>;
begin
  Result := False;
  if Win32MajorVersion >= 6 then
  with TFileOpenDialog.Create(nil) do
    try
      Title := 'Select Directory';
      Options := [fdoPickFolders, fdoPathMustExist, fdoForceFileSystem];
      OkButtonLabel := 'Select';
      DefaultFolder := StartPath;
      FileName := StartPath;
      if Execute then
      begin
        SelectedDir := FileName;
        Result := True;
      end;
    finally
      Free;
    end
    else
// Mögliche Options: sdHidePinnedPlaces, sdNoDereferenceLinks, sdForceShowHidden, sdAllowMultiselect
     if SelectDirectory(StartPath, tmp, [sdForceShowHidden], 'Select Directory', 'Foldername:', 'Select')
// BACKUP - hier noch der Aufruf für den kleinen Dialog
// Mögliche Options: sdNewFolder, sdShowEdit, sdShowShares, sdNewUI, sdShowFiles, sdValidateDir
// mit Option sdShowFiles wird aus dem auch ein Datei-Selektor
// if SelectDirectory('Select Directory', ExtractFileDrive(StartPath), StartPath,
// [sdNewFolder, sdShowEdit, sdShowShares, sdNewUI, sdValidateDir])
     then begin
       SelectedDir := tmp[0]; // Achtung, hier wird nur der erste Eintrag genommen! Also so nicht "sdAllowMultiselect" fähig
// SelectedDir := StartPath; // BACKUP - für den alten Dialog
       Result := True;
     end;
end;


// Beispiel Aufruf:
procedure TForm2.Button1Click(Sender: TObject);
var
  s : String;
begin
 if SelDir('C:\Tools\',S) then ShowMessage(s);
end;
Dank gilt himitsu für's Zeit nehmen und Erklären und das bei mir endlich der Groschen gefallen ist warum ich's Anfang nicht hinbekam, es gibt zwei Unterschiedliche Option-Sets, muss man auch erstmal draufkommen

Nun sehen Dialoge unter XP und Vista sogut wie gleich aus, beide Verhalten sich relativ identisch.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#12

AW: SelectDirectory

  Alt 14. Apr 2018, 10:17
Das sieht zwar sehr schön aus, aber mir fehlen immer noch die verbundenen Laufwerke. (siehe Anhang) Für den Anwender ist es einfacher, wenn diese sichtbar sind, als über das Netzwerk diese zu suchen was die meisten nicht mal verstehen.
Gibt's da noch einen Trick?

Ansonsten wirklich super, vielen Dank schon mal.
Miniaturansicht angehängter Grafiken
verzeichnisse.png  
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#13

AW: SelectDirectory

  Alt 14. Apr 2018, 10:43
mir fehlen immer noch die verbundenen Laufwerke
Das verstehe ich gerade nicht, im Bild sind doch Netzlaufwerke abgebildet?
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#14

AW: SelectDirectory

  Alt 14. Apr 2018, 11:07
Sorry das Bild kommt von dem Windows Explorer. Hier das Bild von TFileOpenDialog.
Miniaturansicht angehängter Grafiken
verzeichnisse_2.png  
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#15

AW: SelectDirectory

  Alt 14. Apr 2018, 11:39
Es geht wenn man mit net use die Laufwerke zuweist.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#16

AW: SelectDirectory

  Alt 14. Apr 2018, 11:41
Delphi-Quellcode:
function SelDir ( StartPath : String; var SelectedDir : String ) : Boolean;
begin
  Result := False;
  with TFileOpenDialog.Create(nil) do
    try
      Title := 'Select Directory';
      Options := [fdoPickFolders, fdoPathMustExist, fdoAllNonStorageItems, fdoShareAware, fdoForceShowHidden, fdoDefaultNoMiniMode];
      OkButtonLabel := 'Select';
      DefaultFolder := StartPath;
      FileName := StartPath;
      if Execute then
      begin
        SelectedDir := FileName;
        Result := True;
      end;
    finally
      Free;
    end
end;
Nur ein Versuch, hier habe ich andere Optionen gewählt die Eigentlich auch Netzlaufwerke Anzeigen sollte.
Bitte einmal Testen, Danke.
Ps: Hier ist der XP Dialog komplett weg.

Nachteil: Es werden dummerweise auch Archive angezeigt

edit
hab diese Überbleibsel entfernt
Code:
var tmp : TArray<string>;
Gruß vom KodeZwerg

Geändert von KodeZwerg (14. Apr 2018 um 11:56 Uhr)
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#17

AW: SelectDirectory

  Alt 14. Apr 2018, 11:52
Ja das funktioniert auch. Danke für Deine Hilfe.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#18

AW: SelectDirectory

  Alt 14. Apr 2018, 11:59
Das freut mich wenn alles nun klappt!
Da leider auch, zumindest bei mir, auch Archive angezeigt werden wäre da eventuell noch ein "ExtractFilePath()" sinnvoll.
Nicht das Dein Programm Versucht eine Datei als Ordner zu benutzen.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Benutzerbild von KodeZwerg
KodeZwerg

Registriert seit: 1. Feb 2018
3.691 Beiträge
 
Delphi 11 Alexandria
 
#19

AW: SelectDirectory

  Alt 14. Apr 2018, 12:09
Delphi-Quellcode:
function SelDir ( StartPath : String; var SelectedDir : String ) : Boolean;
begin
  Result := False;
  with TFileOpenDialog.Create(nil) do
    try
      Title := 'Select Directory';
      Options := [fdoPickFolders, fdoPathMustExist, fdoAllNonStorageItems, fdoShareAware, fdoForceShowHidden, fdoDefaultNoMiniMode];
      OkButtonLabel := 'Select';
      DefaultFolder := StartPath;
      FileName := StartPath;
      if Execute then
      begin
        if FileExists(FileName) then SelectedDir := ExtractFilePath(FileName) else SelectedDir := FileName;
        Result := True;
      end;
    finally
      Free;
    end
end;
So wärst Du auf der sicheren Seite, falls User eine .CAB Datei wählt, wird dessen Verzeichniss genommen anstelle des Archivnamens.
Gruß vom KodeZwerg
  Mit Zitat antworten Zitat
Walter Landwehr

Registriert seit: 28. Mär 2006
Ort: 32816 Schieder-Schwalenberg
397 Beiträge
 
Delphi 10.4 Sydney
 
#20

AW: SelectDirectory

  Alt 14. Apr 2018, 13:21
Danke habe ich umgesetzt.
Walter Landwehr
Mfg

Walter
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


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 02:26 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