Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Übergabe eines nicht instanziierten Objektes als Parameter

  Alt 14. Mai 2012, 13: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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests

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