Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Property überladen (https://www.delphipraxis.net/106147-property-ueberladen.html)

GreenHorn3600 6. Jan 2008 06:58


Property überladen
 
Guten Morgen,

ich kämpfe zur Zeit gegen den Compiler und er scheint die Überhand zu haben.

Ich möchte in einer Klasse auf eine Eigenschaft mit den Schlüssel und der Beschreibung zugreifen. Doch die Deklaration scheint irgendwie falsch zu sein. Wie bekomme ich das hin? Anbei das Beispiel:

Delphi-Quellcode:
  tProd = class
    strict private
     fprodType: integer;
     function GetProdType: String;              
     procedure SetProdType(const Value: String);
   
    public
     property ProdType: Integer read fProdType  write fProdType; overload;
     property ProdType: String read GetProdType write SetProdType; reintroduce; overload;
  end;
Herzlichen Dank :feuerchen:

SirThornberry 6. Jan 2008 07:52

Re: Property überladen
 
Da kannst keine 2 Properties mit gleichem Namen nehmen. Das ist als würdest du 2 Variablen mit gleichem Namen nehmen.
Ebenso kannst du keine Funktionen überladen welche nur verschiedene Rückgabetypen haben.
Oder was sollte der Compiler in so einem Fall dann machen?
Delphi-Quellcode:
var
  i: Integer;
  i: String;
  i: Float;
[...]
i := i + i;

gemeni2005 6. Jan 2008 08:16

Re: Property überladen
 
Nur Standard-Properties kannst du wie folgt überladen:

Delphi-Quellcode:
    property Value[Row, Col: integer]: string read GetValue; default;
    property Value[Row: integer; const FieldName: string]: string read GetValueByFieldName; default;

r2c2 6. Jan 2008 10:42

Re: Property überladen
 
Zitat:

Zitat von gemeni2005
Nur Standard-Properties kannst du wie folgt überladen:

Delphi-Quellcode:
    property Value[Row, Col: integer]: string read GetValue; default;
    property Value[Row: integer; const FieldName: string]: string read GetValueByFieldName; default;

Und das auch nur seit IMHO Delphi 2005...

mfg

Christian


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