![]() |
properties
hallo leute,
gibt es eine möglichkeit propertys einen default wert zuzuweisen?? danke mfg felix |
Re: properties
Ging in Delphi noch nie...
Was du machen kannst: Du kannst dem Designer sagen, dass property einen Default wert von 10 hat. Dadurch wird er keinen Designer code anlegen solange der Wert nicht vom Default abweicht:
Delphi-Quellcode:
Sowas hier gibt's in Delphi nicht:
type
SomeClass = class ... public [DefaultValue(10)] property X : Integer read ... write ...;
Delphi-Quellcode:
type
SomeClass = class private fY : Integer := 5; public property Y : Integer read fY write fY; property X : Integer := 10; |
Re: properties
wie kann ich das dann bei einer komponente machen, dass ich zum beispiel
der property breite von vorneherein den wert 20 zuweisen kann mfg felix |
Re: properties
Zitat:
So sieht das in Win32-Delphi aus, ich weiß aber nicht, ob das bei Delphi.Net auch geht:
Delphi-Quellcode:
type
TSomeClass = class(TObject) public property X : Integer read ... write ... default 35; // Das letzte is es end; |
Re: properties
Dies hat aber nur die Auswirkung, dass wenn im Designer dieser Wert angegeben wird a) der Wert im Objektinspektor nicht fett geschrieben wird und b) im .dfm kein Eintrag für diese Property hinterlegt wird.
Das Schlüsselwort default hat aber zwei Bedeutungen: Erstens wie hier die Festlegung eines Standardwertertes, wobei dieser angegeben werden muss und zweitens ausschliesslich bei Array-Eigenschaften kann dann bei dieser Eigenschaft die Eigenschaft weggelassen werden(z.B.: nicht myInstance.Property[0], sondern myInstance[0]) Damit hat aber diese Property NICHT automatisch diesen Wert, wenn eine Instanz erzeugt wird. Dies musst Du selber im Constructor tun. |
Re: properties
Zitat:
|
Re: properties
Zitat:
...:cat:... |
Re: properties
Zitat:
Außerdem meckert FxCop, wenn man Werte nicht als FieldInit besetzt, die keine Referenz auf self/this brauchen. ;) BTW: ist das in C# die einzige Möglichkeit Felder VOR dem Constructor des Vorgängers besetzen zu können. Da sind beide Pascalderivate für .Net wesentlich flexibler, wobei einer auch die C#-like Zuweisung kann. :mrgreen: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:48 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