Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu
Online

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.063 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
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

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