na die erste Methode ist einfach eine Komponente von TTabSheet ableiten und im Constructor davon die darauf liegenden Dinge erzeugen. Das hier genauer zu erläutern wäre nicht angebracht denn dazu gibt es entsprechende ausführliche tutorials die sich mit der Ableitung befassen.
Normal würdest du ja ein TabSheet zur Laufzeit so erzeugen:
Delphi-Quellcode:
var LSheet: TTabSheet;
begin
LSheet := TTabSheet.Create(nil);
LSheet.PageControl := PageControl1;
und anstelle von TTabSheet nimmst du deine eigene Klasse die du von TTabSheet abgeleitet hast.
Wenn du das ganze jetzt mit einer abgleiteten Version machst siehts so aus:
Delphi-Quellcode:
type
TOwnTabSheet = class(TTabSheet)
private
Button1: TButton;
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
[...]
constructor TOwnTabSheet.Create(AOwner: TComponent);
begin
inherited Create(AOwner);
Caption := 'eigenes TabSheet';
Button1 := TButton.Create(Self);
Button1.Parent := Self;
end;
destructor TOwnTabSheet.Destroy;
begin
Button1.Free;
inherited Destroy;
end;
[...]
var LSheet: TOwnTabSheet;
begin
LSheet := TOwnTabSheet.Create(nil);
LSheet.PageControl := PageControl1;