Hola.
Ahora te entiendo. Una opción es que almacenes la ruta a la carpeta, de modo que al salir del form quede guardado el valor y al entrar se recupere.
Un ejemplo:
Código Delphi
[-]
...
implementation
uses FileCtrl, IniFiles;
var
CurrentPath: string;
options : TSelectDirOpts = [sdAllowCreate, sdPerformCreate, sdPrompt];
procedure TForm1.FormCreate(Sender: TObject);
var
ini: TIniFile;
begin
ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'prg.ini');
try
CurrentPath := ini.ReadString(Self.Name, 'LaCarpeta', 'C:\');
finally
ini.Free;
end;
end;
procedure TForm1.btnChangeDirClick(Sender: TObject);
begin
if FileCtrl.SelectDirectory(CurrentPath, options, 0) then
begin
ShowMessage('Directory selected');
end
else
begin
ShowMessage('Canceled action');
end;
end;
procedure TForm1.FormDestroy(Sender: TObject);
var
ini: TIniFile;
begin
ini := TIniFile.Create(ExtractFilePath(Application.ExeName)+'prg.ini');
try
ini.WriteString(Self.Name, 'LaCarpeta', CurrentPath);
finally
ini.Free;
end;
end;
También podes usar el registro de Windows para almacenar la ruta, pero por cuestiones de permisos este modo es mas fiable.
Saludos
Pd: Si te sirviera el código de ejemplo avísame y te lo adjunto.