Могу ли я просто добавить, что вы не можете установить активную страницу в событии OnChange (я пытался целую вечность!).Любые необходимые проверки должны быть выполнены в событии OnChanging, а затем установите для переменной Allowchange значение true или false соответственно:
procedure Tfrm_AspireParams.PC_OptionsChanging(Sender: TObject;
var AllowChange: Boolean);
begin
AllowChange := true;
if fActivated then
begin
if BBtn_Timesheets_Save.Enabled then // They have not saved changes on this tab.
begin
messagedlg('Please save the page first', mtInformation, [mbOK], 0);
AllowChange := False;
end;
end;
end;