AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Null als Property

Ein Thema von IntelliSoft · begonnen am 8. Apr 2021 · letzter Beitrag vom 9. Apr 2021
 
Rolf Frei

Registriert seit: 19. Jun 2006
655 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Null als Property

  Alt 8. Apr 2021, 12:24
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;

Geändert von Rolf Frei ( 8. Apr 2021 um 13:30 Uhr)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:43 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz