Я знаю, что это очень старый пост, но поскольку он не содержит полного ответа, и у меня возникла та же проблема, и я наконец-то узнал, как это сделать, я подумал, что должен сообщить вам ...
Кроме того, ваш код не работает должным образом, если на некоторых вкладках для tabvisible установлено значение False
Вот я думаю, что лучший способ исправить это, используя целое число i, чтобы зациклить вкладки:
for I := 0 to TPageControl(Control).PageCount-1 do
if TPageControl(Control).Pages[I].TabIndex = TabIndex then
begin
FillRect(Control.Canvas.Handle,aRect,Control.Canvas.Brush.Handle);
// Do your text drawing here
break;
end;