Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Property setzen
martin300 - Mo 21.09.09 14:53
Titel: Property setzen
Hallo,
ich möchte zb. die Prozedur
Delphi-Quelltext
1:
| procedure setx (Value : Integer); |
als Property festlegen; Rückgabewert gibt es keinen;
Wie wird diese definiert?
property x [Value: Integer] ..... wie gehts da weiter?
Moderiert von
Narses: Topic aus Sonstiges (Delphi) verschoben am Mo 21.09.2009 um 16:35
Gausi - Mo 21.09.09 14:57
Also eine write-only-Property? Das müsste so gehen
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12:
| private fx: Integer; procedure SetX(value: Integer); public property X: Integer write SetX;
procedure TMyClass.SetX(value: Integer); begin fx := value; end; |
martin300 - Mo 21.09.09 15:09
Danke das funktioniert.
Und wie würde
Delphi-Quelltext
1:
| procedure setxy (Value1 : Integer, Value2 : Integer); |
aussehen?
Nersgatt - Mo 21.09.09 15:18
Wie würde denn dann die Zuweisung an die Property einer Instanz Deiner Klasse aussehen? Wenn Du Dir diese Frage beantworteste, wirst Du erkennen, dass sowas nicht gehen kann.
Jens
martin300 - Mo 21.09.09 16:31
Ich hätte die Zuweisung an das Property genauso wie zu einer Methode gemacht. Nur geht das nicht.
Narses - Mo 21.09.09 16:37
Moin!
Klar geht das nicht, da eine Eigenschaft immer nur einen Wert annehmen kann. :zwinker: Alternativ gibt es noch Array-Properties, hier wird dir dann ein Index im Setter/Getter mitgegeben, aber jedes Eigenschaftsfeld im Array hat natürlich auch immer nur einen Wert. :idea:
Anders gesagt: versuch mal einem var Int: Integer; mehr als einen Wert zuzuweisen. ;)
cu
Narses
martin300 - Mo 21.09.09 17:55
Ich habe mir von den Propertys mehr erwartet, als nur einen Zugriff auf Variablen. Naja.
Eine Frage habe ich noch zu den Array Propertys. Als Beispiel:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9:
| TSimpleStringList = class private FList: array of string; protected function Get(Index: Integer): string; procedure Put(Index: Integer; const S: string); public property Strings[Index: Integer]: string read Get write Put; default; end; |
Was passiert beim Anruf von
bzw. wie wird es zu
dummzeuch - Mo 21.09.09 19:06
martin300 hat folgendes geschrieben : |
Ich habe mir von den Propertys mehr erwartet, als nur einen Zugriff auf Variablen.
|
Ein Property ist lediglich eine Kurzform fuer den Aufruf einer Setter/Getter-Methode oder fuer den Zugriff auf eine Variable. Was eine Setter/Getter-Methode dann macht, kann beliebig komplex sein. Das Setzen einer Variablen ist nur der einfachste Fall.
martin300 hat folgendes geschrieben : |
Eine Frage habe ich noch zu den Array Propertys. Als Beispiel:
...
Was passiert beim Anruf von
bzw. wie wird es zu
|
Was soll da passieren? Der Compiler erkennt eine Property-Zuweisung und generiert den Aufrufcode fuer die Setter-Methode.
twm
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!