Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#4

AW: Übergabe eines nicht instanziierten Objektes als Parameter

  Alt 14. Mai 2012, 14:36
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
$2B or not $2B

Geändert von himitsu (14. Mai 2012 um 14:40 Uhr)
  Mit Zitat antworten Zitat