Code for Edit Box
Code:
Page2Edit.FCreate(Page2.Handle);
Page2Edit.SetBounds(NSSX(100), NSSY(190), NSSX(520), NSSY(35));
Page2Edit.FontSetting('{#FontName}', VCLFontSizeToFMX2(13), ALGainsBoro);
Page2Edit.CanFocus(True);
Page2Edit.Enabled(True);
Page2Edit.Text(MinimizePathName(WizardForm.DirEdit.Text, WizardForm.DirEdit.Font, WizardForm.DirEdit.Width));
Page2Edit.OnTyping(@BrowseEditOnChange);
Logic for procedure
Code:
procedure BrowseEditOnChange(Sender: TObject);
var
PrevDrive, CurrentDrive: String;
begin
PrevDrive := ExtractFileDrive(WizardForm.DirEdit.Text);
CurrentDrive := ExtractFileDrive(Page2Edit.GetText);
// Set the installation path to the edited text value
WizardForm.DirEdit.Text := Page2Edit.GetText;
if PrevDrive <> CurrentDrive then
DirUpdateProc(nil);
end;
Logic for Directory Update Procedure:
Code:
procedure DirUpdateProc(Sender: TObject);
begin
DiskUsage.SetDir(WizardForm.DirEdit.Text);
SelectDirLabel[3].Text('Total Space - ' + MbOrTb(DiskUsage.TotalSpace, 1) + #13 +
'Available Space - '+ MbOrTb(DiskUsage.FreeSpace, 1) + #13 +
'Repack Size - ' + MbOrTb({#RepackSize}, 1));
if Round(DiskUsage.FreeSpace) > StrToInt('{#RequiredSpace}') then
begin
WizardBtn[4].Enabled(True); //Install Button enabled if there is space
end else
begin
WizardBtn[4].Enabled(False); //Install Button disabled if no space
ShowMessage('Not Enough Space', 'Selected Directory does not have required space. Please select a different directory location.');
end;
end;