Vielleicht magst Du ja eine Zwei-In-Einem Variante, für WindowsXP dein SelectDirectory und ab Vista das neue Fenster.
Ist Hauptsächlich nur die Optik.
Delphi-Quellcode:
function SelDir ( StartPath : String; var SelectedDir : String ) : Boolean;
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
if SelectDirectory('Select Directory', ExtractFileDrive(StartPath), StartPath,
[sdNewUI, sdNewFolder, sdShowShares]) then
begin
SelectedDir := StartPath;
Result := True;
end;
end;
// Beispiel Aufruf:
procedure TForm2.Button1Click(Sender: TObject);
var
s : String;
begin
if SelDir('',S) then ShowMessage(s);
end;
Unterschiede zwischen Vista und XP Dialog wäre falls Du so
SelDir('C:\XYZ\',S)
den Aufruf machst, unter Vista wäre der User beim Aufruf bereits in "C:\XYZ\" drinnen bei XP hingegen hätte der Dialog "C:\XYZ\" ausgewählt.