Entwickler-Ecke

Delphi Language (Object-Pascal) / CLX - Standarteigenschaften deklarieren (für Vektor-Klassen)


Nait - So 26.09.10 19:20
Titel: Standarteigenschaften deklarieren (für Vektor-Klassen)
Hallo Leute,

zuerst einmal: Wenn es ne Unit für dreidimensionale Vektoren gibt, sagt das bitte gleich, dann kann ich mir Arbeit sparen ^^

In jedem Fall würde mich aber interessieren, wie man für seine Klassen Standarteigenschaften definiert. Sodass ich zum Beispiel bei

Delphi-Quelltext
1:
2:
3:
4:
TVektor = class(TObject)
public
  Koordinaten: Array[0..2of Integer;
end;

die Koordinaten über zwei Möglichkeiten aufrufen kann:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
var 
  Vektor: TVektor;

procedure DoSomething;
begin
  Vektor.Koordinaten[0] := 18//gleichbedeutend mit
  Vektor[0] := 18;
end:


Sowas gibt es bei manchen vordefinierten Klassen und ich wollte wissen, ob man das (und wie) selbst festlegen kann.


glotzer - So 26.09.10 19:25


Delphi-Quelltext
1:
2:
type
     TVector = Array[0..2of Integer;


dann geht halt NUR die 2.


Tryer - So 26.09.10 19:41

Ungetestet nach langer Abstinenz aus der hohlen Rübe:

Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
type
  TCoordRange = 0..2;
  TCoords = array[TCoordRange] of Integer;

  TVektor = class
  private
   FCoords: TCoords;
  public
    property Coords[Index: TCoordRange]: Integer read GetCoord write SetCoord; default;
  end;


Codeverfollständigung von TVektor mit Ctrl-Shift-C sollte dann den Rest erklären.

Grüsse, Dirk


Nait - So 26.09.10 20:18

Danke Tryer, so passts ^^