Delphi-Quellcode:
procedure Prozedur2(CompType: TComponentClass; out Component: TComponent; Top, Left: Integer);
begin
Component := CompType.Create(Self);
Component.Top := Top;
Component.Left := Left;
if CompType = TButton then begin
// etwas, welches nur für TButton gilt
end;
if CompType is TButton then begin
// etwas, welches nur für TButton und Nachfahren gilt
end;
end;
Prozedur2(TButton, btn, 50, 50);
TComponent ist der Vorfahr für alle
VCL-Componenten.
Man könnte aber auch was anderes verwenden, welches Alle gemeinsam haben, wie z.B. TCustomEdit für TMemo, TEdit und TRichEdit.
TComponentClass ist ein Klassenzeiger für TComponents, worin man also Typen von TComponentnachfahren ablegen kann.
TComponentClass = class of TComponent