Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Getter/Setter mit unterschiedlicher Sichtbarkeit möglich? (https://www.delphipraxis.net/67971-getter-setter-mit-unterschiedlicher-sichtbarkeit-moeglich.html)

Shaman 22. Apr 2006 16:12


Getter/Setter mit unterschiedlicher Sichtbarkeit möglich?
 
Hey there

Ist so etwas machbar?
Delphi-Quellcode:
type
  TTest = class
  private
    FProp: Integer;
  protected
    property Prop: Integer write FProp;
  public
    property Prop: Integer read FProp;
  end;
Gruss
Shaman

sniper_w 22. Apr 2006 16:14

Re: Getter/Setter mit unterschiedlicher Sichtbarkeit möglich
 
Nein. Dein Compiler würde dir das Gleiche sagen.

Shaman 22. Apr 2006 16:20

Re: Getter/Setter mit unterschiedlicher Sichtbarkeit möglich
 
Hat er mir auch gesagt ;)
Wollte nur verdeutlichen, was ich meine. Vieleicht geht es ja auf eine andere Weise.

Dax 22. Apr 2006 16:20

Re: Getter/Setter mit unterschiedlicher Sichtbarkeit möglich
 
Falls du Chrome kennst: dort geht das.

Delphi-Quellcode:
type
  Foo = class
  private
    method GetProp: Integer;
    method SetProp(const Value: Integer);
  public
    property Prop: Integer public read GetProp protected write SetProp;
  end;
Damit dürfen alle lesen, aber nur Kindklassen schreiben.

Flocke 22. Apr 2006 16:23

Re: Getter/Setter mit unterschiedlicher Sichtbarkeit möglich
 
Oder mittels zweier Properties auf denselben Wert zugreifen:
Delphi-Quellcode:
type
  TTest = class
  private
    FProp: Integer;
  protected
    property ProtectedProp: Integer read FProp write FProp;
  public
    property Prop: Integer read FProp;
  end;

omata 22. Apr 2006 16:46

Re: Getter/Setter mit unterschiedlicher Sichtbarkeit möglich
 
Oder mittels zweier Methoden:
Delphi-Quellcode:
type
  TTest = class
  private
    FProp: Integer;
  protected
    procedure Prop(Value:Integer); overload;
  public
    function Prop:Integer; overload;
  end;

:
:

{ TTest }

procedure TTest.Prop(Value: Integer);
begin
  FProp:=Value;
end;

function TTest.Prop: Integer;
begin
  Result:=FProp;
end;
MfG
Thorsten

Elvis 22. Apr 2006 16:53

Re: Getter/Setter mit unterschiedlicher Sichtbarkeit möglich
 
Zitat:

Zitat von omata
Oder mittels zweier Methoden:

Möglich und gar nicht mal so unkreativ. ;)

Ich denke, die StiNo-Delphi-Lösung wäre ein protected Setter. So gibt es weiterhin eine (read-) Property, und die Namenskonvention für einen Setter (set[Property]) sollte seine Funktion ziemlich eindeutig klarmachen. ;)

Delphi-Quellcode:
protected
  function getXXX : SomeType; virtual;
  procedure setXXX(const value : SomeType); virtual;
public
  property XXX : SomeType read getXXX;
So hat man (zwar unschön) fast virtuelle Properties wie in Chrome oder C#:
Delphi-Quellcode:
public
  property XXX : SomeType
    read fXXX protected write fXXX; virtual;
Edit: Der Getter hätter wohl keine Prozedur sein können, right? :mrgreen:
Das passiert, wenn man sonst nur "method" schreibt :lol:


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:59 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