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 (https://www.delphipraxis.net/114704-property.html)

S20000 29. Mai 2008 20:31


Property
 
Hallo zusammen,

ich analysiere gerade einen fremden Quellcode und verstehe die folgende Zeile nicht:

Delphi-Quellcode:

type...

property Name[Index: integer]: string read GetName write SetName;

Kann mir jemand erklären was in dieser Zeile passiert?


Gruß
Sebastian

Dax 29. Mai 2008 20:34

Re: Property
 
Erstens: ein Aussagekräftiger Titel wäre nett
Zweitens: hier wird eine indexed Property deklariert, die nach aussen hin wie ein Array wirkt - man kann einfach über Name[n] auf den n-ten Eintrag zugreifen.

FAlter 29. Mai 2008 20:41

Re: Property
 
Hi,

das ganze sieht so aus:

Du hast eine

Delphi-Quellcode:
function GetName(Index: Integer): String;
Diese Funktion gibt je nach Index einen bestimmten String zurück.

Dann hast du eine

Delphi-Quellcode:
procedure SetName(Index: Integer; const Value: String);
Welche vermutlich den String irgendwo - mit Zuordnung des Indexes - speichert.

Delphi-Quellcode:
property Name[Index: integer]: string read GetName write SetName;
Diese Zeile bewirkt nun, dass es eine Array-Eigenschaft namens Name gibt. Du kannst so darauf zugreifen:

Delphi-Quellcode:
  ShowMessage(MyObject.Name[5]);
  MyObject.Name[4] := 'Jondalar von der neunten Höhle der Zelandonii';
Wobei MyObject eine Instanz dieser Klasse ist.

Im ersten Fall wird dazu die Funktion GetName mit dem Parameter 5 aufgerufen.
Im zweiten Fall wird SetName mit den Parametern 4 und 'Jondalar von der neunten Höhle der Zelandonii' aufgerufen.

Mfg
FAlter

S20000 29. Mai 2008 20:54

Re: Property
 
Danke! Ich sollte mich wohl mit dem Klassen "Modell" von Delphi
näher beschäftigen..


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