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-Record-Eigenschaft ändern (https://www.delphipraxis.net/86855-property-record-eigenschaft-aendern.html)

xZise 20. Feb 2007 16:17


property-Record-Eigenschaft ändern
 
Ich habe folgende Property:
Delphi-Quellcode:
property ApplicationData[AGroup : Integer; ASelected : Integer; AAddon : Integer] : TApplicationData read getApplicationData write setApplicationData;
Wie kann ich jetzt am einfachsten eine Eigenschaft von ApplicationData ändern?

Folgendermasen funktionierts nicht:
Delphi-Quellcode:
Data.ApplicationData[group, selected, addon].name := eName.Text;
Aber am besten wäre es, wenn so funktionieren würde...

Zitat:

[Pascal Fehler] E2064 Der linken Seite kann nichts zugewiesen werden

Elvis 20. Feb 2007 16:26

Re: property-Record-Eigenschaft ändern
 
Du hättest ruhig erwähnen können, dass TApplicationData ein Record ist.
Records werden nunmal kopiert bei jeder Zuweisung.
Der Record, dem du durch den Getter der Property bekommst kann aber schlecht etwas zugewiesen werden, da er nur ein Funktionsergebnis ist.
Andere die Property so, das sie einen Pointer auf TApplicationData zurückliefert oder mache es richtig und Ändere TApplicationData zu einer Klasse.

xZise 20. Feb 2007 16:51

Re: property-Record-Eigenschaft ändern
 
Zitat:

Zitat von Elvis
Du hättest ruhig erwähnen können, dass TApplicationData ein Record ist.

Ich habe angenommen, dass man es aus dem Titel erfassen würde...
Zitat:

Zitat von Elvis
Records werden nunmal kopiert bei jeder Zuweisung.
Der Record, dem du durch den Getter der Property bekommst kann aber schlecht etwas zugewiesen werden, da er nur ein Funktionsergebnis ist.

Schade ...

Zitat:

Zitat von Elvis
Andere die Property so, das sie einen Pointer auf TApplicationData zurückliefert oder mache es richtig und Ändere TApplicationData zu einer Klasse.

Dann werde ich es wohl in einer Klasse enden lassen müssen ...

Jürgen Thomas 20. Feb 2007 17:07

Re: property-Record-Eigenschaft ändern
 
Zitat:

Zitat von xZise
Dann werde ich es wohl in einer Klasse enden lassen müssen ...

Was heißt denn "müssen"?! Das ist auf Dauer gesehen sowieso zukunftssicherer und "verleitet" zum richtigen objektorientierten Programmierung. Jürgen

xZise 20. Feb 2007 17:18

Re: property-Record-Eigenschaft ändern
 
Zitat:

Zitat von Jürgen Thomas
Zitat:

Zitat von xZise
Dann werde ich es wohl in einer Klasse enden lassen müssen ...

Was heißt denn "müssen"?! Das ist auf Dauer gesehen sowieso zukunftssicherer und "verleitet" zum richtigen objektorientierten Programmierung. Jürgen

;) Jetzt reicht es aber "SetLength()" aufzurufen um das Array ein Größer zu machen ... Aber mit Klassen muss ich die jeweiligen Constructoren/Destruktoren aufrufen ^^ Aber das ist schon okay so ;)


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