Вы можете переопределить TInputDirWizardPage.Buttons[0].OnClick
обработчик событий:
var
DirPage: TInputDirWizardPage;
PrevFirstButtonClick: TNotifyEvent;
procedure FirstButtonClick(Sender: TObject);
var
PrevValue: string;
begin
PrevValue := DirPage.Values[0];
{ Call remembered handler }
PrevFirstButtonClick(Sender);
if DirPage.Values[0] <> PrevValue then
begin
{ And do whatever you want to do when the value changes }
MsgBox(Format('Value changed from "%s" to "%s".', [PrevValue, DirPage.Values[0]]),
mbInformation, MB_OK);
end;
end;
procedure InitializeWizard();
begin
DirPage := CreateInputDirPage(
wpSelectDir, SetupMessage(msgWizardSelectDir), '', '', False, '');
{ add directory input page items }
DirPage.Add('Path to Apache:');
DirPage.Add('Path to PHP:');
DirPage.Add('Path to Server Files:');
{ Remember the standard handler }
PrevFirstButtonClick := DirPage.Buttons[0].OnClick;
{ And assign our override }
DirPage.Buttons[0].OnClick := @FirstButtonClick;
end;
Код требует Unicode-версию Inno Setup.Вызов DirPage.Buttons[0].OnClick
странно не работает в версии Ansi.