Ну вот не могу себя заставить Tag использовать для чего-либо. Какой-то он вседоступный, каждый может чего угодно в него вписать. Но если конечно стоит выбор - делать такого наследника или использовать tag, возможно все-же tag будет приличнее

Попробую через tag сделать, может правда более прилично выйдет.
Ну вроде действительно как-то поприличнее стало:
Код:
procedure TForm33.Button1Click(Sender: TObject);
var
Tab: TTabSheet;
TabProgress: TTabProgress;
begin
Tab := TTabSheet.Create(PageControl1);
Tab.PageControl := PageControl1;
Tab.Caption := IntToStr(Tab.TabIndex);
Tab.ImageIndex := 0;
TabProgress := TTabProgress.Create(True);
TabProgress.FreeOnTerminate := True;
TabProgress.Tab := Tab;
Tab.Tag := Integer(TabProgress);
TabProgress.Start;
end;
procedure TTabProgress.Execute;
begin
inherited;
while not Terminated
do begin
Synchronize(Update);
Sleep(50);
end;
end;
procedure TTabProgress.Update;
begin
Tab.ImageIndex := Tab.ImageIndex + 1;
if Tab.ImageIndex > Tab.PageControl.Images.Count-1 then Tab.ImageIndex := 0;
end;
procedure TForm33.Button2Click(Sender: TObject);
begin
TTabProgress(PageControl1.ActivePage.Tag).Suspend
end;
procedure TForm33.Button3Click(Sender: TObject);
var
i: Integer;
begin
if Assigned(PageControl1.ActivePage)
then begin
TTabProgress(PageControl1.ActivePage.Tag).Terminate;
PageControl1.ActivePage.Free;
end;
end;