Понятно. Попробовал реализовать у себя – действительно, наблюдается неприятная смена фокуса на доли секунды.
Я попробовал принудительно установить действие закрытия, а также добавил анимацию, которую можете убрать)
Если оставите анимацию, то в Uses добавьте модуль sVclUtils.
Попробуйте:
procedure TForm11.PCCloseBtnClick(Sender: TComponent;TabIndex: Integer; var CanClose: Boolean; var Action: TacCloseAction);
begin
//PC – это Ваш PageControl
Action:=acaHide;//принудительно
If TabIndex>0 then begin//небольшая необязательная анимация
PrepareForAnimation(PC);
PC.ActivePageIndex:=Tabindex-1;
AnimShowControl(PC,100);//100 – анимация в мсек
end;
end;