Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Klassenattribute (https://www.delphipraxis.net/9966-klassenattribute.html)

Angelus 8. Okt 2003 17:22


Klassenattribute
 
Gibt es in Delphi Klassenattribute?? dh ein Attribut in einer Klasse, dass nehmen wir an die Anzahl der Objekte zählt die während der Laufzeit entstehen (muss nicht heißen dass alle bestehen bleiben) Und wenn es Sie gibt wie wende ich diese on??

thx angelus

Delphianer 8. Okt 2003 18:58

Re: Klassenattribute
 
Hallo,

ich nehme an, Du meinst so etwas wie statische Klassenvariablen - gibt es nicht. Aber Du kannst mit wenig Aufwand das Verhalten nachbilden:

Delphi-Quellcode:
Unit Test;

interface

type
  TMyClass = class
  private
    function GetAnzahl: Integer;
  public
    constructor Create;
    property AnzahlObjekte: Integer read GetAnzahl;
  end;

implementation

var
  Anzahl: Integer;

{ TMyClass }

constructor TMyClass.Create;
begin
  inherited;

  Inc(Anzahl);
end;

function TMyClass.GetAnzahl: Integer;
begin
  Result := Anzahl;
end;

initialization
  Anzahl := 0;
end.
Du legst in der Unit, in der sich Deine Klasse befindet, im implementation-Abschnitt eine Variable an. Damit hast Du auch nur aus der Unit heraus auf diese Variable Zugriff. Das Setzen der Variablen auf 0 im initialization-Abschnitt ist nicht wirklich nötig, dort kannst Du aber noch andere Arbeiten machen, die Du beim Start des Programmes machen willst. Im Constructor zählst Du die Variable hoch, und dann brauchst Du noch eine Methode (ich habe eine Property verwendet), um den Inhalt der Variablen auszugeben.

Viele Grüße

Angelus 8. Okt 2003 20:50

Re: Klassenattribute
 
vielen dank für die antwort .... genau das habe ich gemeint!!

jetzt muss i mi durch a bisschen theorie (vererbung, properties usw) kämpfen damit ich auch versteh was ich da mach!!!

thx und danke lg
Angelus


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz