Ja da habe ich mich auch schon gefragt was daraus geworden ist. Das sollte doch glaube ich in 10.3 (oder sogar schon in 10.2.x) eingeführt werden und wurde dann kurzfristig wieder rausgenommen. Leider hat man seit da nichts mehr dazu gelesen. Mich würde schon auch interessieren wie es damit weiter geht oder ob das komplett gestorben ist. Hatte aber selber auch noch garnie den Bedarf dafür, weil man das auch anders lösen kann.
An den OP: Wieso definierst du denn nicht einfach, dass 0 kein gültiger Wert ist, also genau das was du ja schreibst. Wenn Stärke2 = 0 ist entspricht das deinem Null. Beim setzen des Property Achse prüfst du den Wert von Stärke2 und änderst den Wert von Achse (das Klassenfeld FAchse) nur wenn Stärke2 <> 0 ist. Mit einem SetAchse/GetAchse des Proberties kannst du das problemlos umsetzen. Die Achse initialiserst du natürlcih mit ienem ungültigen Wert wie z.B. -1, was dann für die Achse dem Null entsprechen würde.
Delphi-Quellcode:
type
TMyObject =
class
private
FAchse: Integer;
FStaerke1,
FStaerke2: Double;
procedure SetAchse(AValue: Double);
function GetAchse: Double;
public
constructor Create;
virtual;
property Achse: Double
read GetAchse
write SetAchse;
property Staerke1: Double
read FStaerke1
write FStaerke1;
property Staerke2: Double
read FStaerke2
write FStaerke2;
end;
constructor TMyObject.Create;
begin
FAchse := -1;
// Staerke1 + 2 werden vom Compiler mit 0 initialisiert
end;
function TMyObject.GetAchse: Double;
begin
if FStaerke2 <> 0
then
Result := ....
// deine Achsenberechnung
else
Result = -1;
// oder eine Exception auslösen je nach Bedarf
end;
procedure TMyObject.SetAchse(AValue: Double);
begin
// hier kanns du irgendwas machen, was beim setzen des Achse Properties passieren soll.
// z.B. überprüfen ob der Wert einem gültigen Wert für Achse entspricht.
end;