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 und setter methoden (https://www.delphipraxis.net/29210-getter-und-setter-methoden.html)

day 5. Sep 2004 16:22


getter und setter methoden
 
HAllo

Muss ich bei getter und setter methoden einer klasse tatsächlich einmal die Methode als procedure und das anderemal als function bezeichen (Da ja die Setter methode keinen rückgabewert hat)?

Code:
    function getStatus() : Integer;
    procedure setStatus(Status : Integer);

Nothine 5. Sep 2004 16:23

Re: getter und setter methoden
 
jap, musst du.

Luckie 5. Sep 2004 16:24

Re: getter und setter methoden
 
Der Getter muss eine Funktion sein, macht ja sonst keinen Sinn. Aber was stört dich daran? Ist doch eigentlich nur schlüssig mit Funktion und Prozedur.

mytar 5. Sep 2004 16:29

Re: getter und setter methoden
 
Meine Methode:
  • Ich definiere mit die property mit read und write:
    Beispiel:
    Delphi-Quellcode:
    property MyProp: Integer read GetMyProp write SetMyProp;
  • Nun drücke ich Ctrl+Shift+C und die Codevervollständigung schreibt die
    Methoden in die Unit
  • Nun muss ich die Methoden einfach noch implementieren

Luckie 5. Sep 2004 16:30

Re: getter und setter methoden
 
Deine Methode geht aber nur ab den Professional Versionen. Außerdem ist das keine antwort auf seine Frage. ;)

Nothine 5. Sep 2004 16:31

Re: getter und setter methoden
 
Zitat:

Zitat von mytar
Nun drücke ich Ctrl+Shift+C und die Codevervollständigung schreibt die Methoden in die Unit

wos, sowas geht? :shock:

// Edit, ok, Professional version, dann is ja gut :stupid:

CalganX 5. Sep 2004 16:31

Re: getter und setter methoden
 
Hi,
eigentlich kannst du auch folgendes machen (für den Fall das dir das genügt):
Delphi-Quellcode:
type TMyClass = class(TParent)
  private
    fProp: integer;
  public
    property Prop: integer read fProp set fProp;
Chris

day 5. Sep 2004 16:36

Re: getter und setter methoden
 
was mich daran stört? Sieht nicht so schön aus :-)

mytar 5. Sep 2004 16:38

Re: getter und setter methoden
 
@Luckie: Bei Enterprise ist sicher dabei, womöglich erst ab Delphi6, idontknow :-D
@Chakotay1308: Ich hab das nur als Beispiel gemacht, hab mir schon gedacht dass da einer wieder meckert :?

Sharky 5. Sep 2004 16:39

Re: getter und setter methoden
 
Zitat:

Zitat von day
was mich daran stört? Sieht nicht so schön aus :-)

Aber so ist halt der Syntax von Delphi ;-)
Aber wenn es dir nicht gefällt kannst Du ja beide Methoden als Function deklarieren. Dann ist es halt nicht mehr sauber programmiert aber Du hast es einheitlich :stupid:

sakura 5. Sep 2004 16:50

Re: getter und setter methoden
 
Zitat:

Zitat von Sharky
Aber wenn es dir nicht gefällt kannst Du ja beide Methoden als Function deklarieren. [...] :stupid:

Der :stupid: am Ende ist korrekt :mrgreen: Weil beide als Funktionen zu deklarieren schluckt der Compiler nicht :roll:

...:cat:...

day 5. Sep 2004 17:48

Re: getter und setter methoden
 
Zitat:

Aber so ist halt der Syntax von Delphi
Ja daran muss man sich zuerst gewöhnen (wenn man vorher nur Java programmiert hat).

Luckie 5. Sep 2004 17:56

Re: getter und setter methoden
 
@mytar: Ich sagte doch ab Professional.

Sharky 6. Sep 2004 06:51

Re: getter und setter methoden
 
Zitat:

Zitat von sakura
... Weil beide als Funktionen zu deklarieren schluckt der Compiler nicht :roll:...

Warum nicht? :stupid: Er möchte es doch nur "einheitlich" ;-)

Delphi-Quellcode:
type
  TForm1 = class(TForm)
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
  private
    { Private-Deklarationen }
    fstatus : Integer;
  public
    { Public-Deklarationen }
    function GetStatus : Integer;
    function SetStatus (astatus : Integer) : integer;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

{ TForm1 }

function TForm1.GetStatus: Integer;
begin
  Result := fstatus;
end;

function TForm1.SetStatus(astatus: Integer): integer;
begin
  fstatus := astatus;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  foo : Integer;
begin
  SetStatus (1);
  foo := GetStatus;
end;

sakura 6. Sep 2004 07:14

Re: getter und setter methoden
 
Zitat:

Zitat von Sharky
Warum nicht? :stupid: Er möchte es doch nur "einheitlich" ;-)

Darum :!: Versuche doch mal das zu kompilieren :roll:

...:cat:...

CalganX 6. Sep 2004 09:16

Re: getter und setter methoden
 
Hi,
Sharky's Source wird auch soweit funktionieren, weil sich da nichts auf Eigenschaften bezieht, sondern da einfach nur zwei Member-Funktionen stehen. ;)

Chris


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