I've the following code (taken from Use two/multiple selected directories from custom page in Files section):
[Code]
var
DirPage: TInputDirWizardPage;
function GetDir(Param: String): String;
begin
Result := DirPage.Values[StrToInt(Param)];
end;
procedure InitializeWizard;
var
S1, S2: String;
begin
S1 := SetupMessage(msgSelectDirDesc);
StringChangeEx(S1, '[name]', 'ProgramName', false);
S2 := SetupMessage(msgSelectDirLabel3);
StringChangeEx(S2, '[name]', 'ProgramName', false);
{ create a directory input page }
DirPage := CreateInputDirPage(
wpSelectDir, SetupMessage(msgWizardSelectDir), S1, S2, False, '');
{ add directory input page items }
DirPage.Add('Path to Apache:');
DirPage.Add('Path to PHP:');
DirPage.Add('Path to Server Files:');
{ assign default directories for the items from the previously stored data; if }
{ there are no data stored from the previous installation, use default folders }
{ of your choice }
DirPage.Values[0] := GetPreviousData('Directory1', 'C:\Apache');
DirPage.Values[1] := GetPreviousData('Directory2', 'C:\PHP');
DirPage.Values[2] := GetPreviousData('Directory3', 'C:\Apache\htdocs\Server Files');
end;
procedure RegisterPreviousData(PreviousDataKey: Integer);
begin
{ store chosen directories for the next run of the setup }
SetPreviousData(PreviousDataKey, 'Directory1', DirPage.Values[0]);
SetPreviousData(PreviousDataKey, 'Directory2', DirPage.Values[1]);
SetPreviousData(PreviousDataKey, 'Directory3', DirPage.Values[2]);
end;
I'd like to make this behave like the traditional folder select page, so when selecting a folder, Inno Setup should keep the default folder name unless manually overwritten by the user. I.e.: if I select the folder "C:\Program Files\"
it should keep the original folder like "C:\Program Files\PHP"
or "C:\Program Files\Apache"
. Is this possible?