Мне удалось получить базовый сценарий, работающий для отображения мастера (используя CreateInputFilePage
), чтобы пользователь мог определить местоположение файла, которое я использую для обновления некоторых настроек в файле XML. Однако я хотел бы выполнить некоторую базовую проверку ввода в выбранный файл, а не просто принимать то, что предоставляет пользователь. Например, отображение окна сообщения, если пользователь пытается нажать ** Далее "*, когда содержимое недопустимо. Я не совсем уверен, как обрабатывать события, возникающие в мастере, и как применять любые виды правил проверки данных, прежде чем продолжить к следующей задаче. В настоящее время я определил простую InitializeWizard
процедуру.
[Code]
var
Page: TInputFileWizardPage;
procedure InitializeWizard;
begin
{ wizard }
Page := CreateInputFilePage(
wpWelcome, 'Select dFile Location', 'Where is dFile located?',
'Select where dFile.dba file is located, then click Next.' );
{ Add item (with an empty caption) }
Page.Add('location of dFile.dba', '*.dba|*.*', '.dba' );
end;
Затем я восстанавливаю имя и местоположение файла при срабатывании события CurStepChanged
и использую его для обновления некоторых настроек в файле XML
procedure CurStepChanged(CurStep: TSetupStep);
var
dFull: String;
dPath: String;
dName: String;
begin
if (CurStep = ssPostInstall) then
begin
{ recover dFile location }
dFull:= Page.Values[0];
dPath := ExtractFilePath( dFull );
dName := ExtractFileName( dFull );
{ write dFile location and name to settings.xml }
UpdateSettingsXML( dPath, 'dFileDirectory' );
UpdateSettingsXML( dName, 'dFileName' );
end;
end;