Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Frage zu Property (https://www.delphipraxis.net/124685-frage-zu-property.html)

torf160 23. Nov 2008 09:54


Frage zu Property
 
Hallo,

ich möchte eine eigene Klasse erstellen, aber das funktioniert nicht so richtig.

Hier mein Code:

Delphi-Quellcode:
TYPE TArtikel = class
   private
     fBezeichnung : string[60];

   public
    property Bezeichnung : string[60] read fBezeichnung write fBezeichnung;

end;
In der Zeile "property Bezeichnung : string[60] read fBezeichnung write fBezeichnung;"
kommt die Meldung "INDEX, READ oder WRITE Anweisung erwartet, aber '[' gefunden"

Was mache ich da falsch?

Ich hoffe, Ihr könnt mir helfen.

Vielen Dank für Eure Mühe
torf160

Die Muhkuh 23. Nov 2008 10:01

Re: Frage zu Property
 
Wirf das mit [60] komplett raus und mach einen setter, der diese Bedingung prüft:

Delphi-Quellcode:
TYPE TArtikel = class
   private
     fBezeichnung : string;

     procedure SetBezeichnung(Value: string);
   public
    property Bezeichnung : string read fBezeichnung write SetBezeichnung;

end;

[...]

procedure TArtikel.SetBezeichnung(Value: string);
begin
  if Length(Value) > 60 then
  begin
    // Exception werfen, String kürzen, was auch immer passieren soll, wenn der Text größer 60 Zeichen ist
  end;

  fBezeichnung := Value;
end;

DeddyH 23. Nov 2008 10:18

Re: Frage zu Property
 
Was auch gehen müsste:
Delphi-Quellcode:
TYPE
  TString60 = string[60];

  TArtikel = class
   private
     fBezeichnung : TString60;

   public
    property Bezeichnung : TString60 read fBezeichnung write fBezeichnung;

end;

torf160 23. Nov 2008 12:38

Re: Frage zu Property
 
Beide Lösungen funktionieren.

Toll, danke für die schnelle Hilfe :thumb:

torf160


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