AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

properties

Ein Thema von felix_schmidt · begonnen am 18. Apr 2006 · letzter Beitrag vom 18. Apr 2006
Antwort Antwort
felix_schmidt

Registriert seit: 9. Feb 2006
24 Beiträge
 
#1

properties

  Alt 18. Apr 2006, 10:45
hallo leute,

gibt es eine möglichkeit propertys einen default wert zuzuweisen??

danke

mfg felix
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#2

Re: properties

  Alt 18. Apr 2006, 10:50
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:
type
  SomeClass = class
  ...
  public
   [DefaultValue(10)]
   property X : Integer read ... write ...;
Sowas hier gibt's in Delphi nicht:
Delphi-Quellcode:
type
  SomeClass = class
  private
   fY : Integer := 5;
  public
    property Y : Integer read fY write fY;
    property X : Integer := 10;
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
felix_schmidt

Registriert seit: 9. Feb 2006
24 Beiträge
 
#3

Re: properties

  Alt 18. Apr 2006, 10:56
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
  Mit Zitat antworten Zitat
Thorben77

Registriert seit: 22. Okt 2004
359 Beiträge
 
#4

Re: properties

  Alt 18. Apr 2006, 10:59
Zitat von Elvis:
Ging in Delphi noch nie...
Falsch

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;
  Mit Zitat antworten Zitat
Sidorion

Registriert seit: 23. Jun 2005
403 Beiträge
 
#5

Re: properties

  Alt 18. Apr 2006, 11:01
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.
Manchmal sehen Dinge, die wie Dinge aussehen wollen mehr wie Dinge aus, als Dinge
<Esmerelda Wetterwachs>
  Mit Zitat antworten Zitat
Thorben77

Registriert seit: 22. Okt 2004
359 Beiträge
 
#6

Re: properties

  Alt 18. Apr 2006, 11:05
Zitat von Sidorion:
Damit hat aber diese Property NICHT automatisch diesen Wert, wenn eine Instanz erzeugt wird. Dies musst Du selber im Constructor tun.
Ups, stimmt ja . Ich sollte so früh noch nichts posten .
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#7

Re: properties

  Alt 18. Apr 2006, 11:07
Zitat von Elvis:
Ging in Delphi noch nie...
Schon immer, dazu gibt es schließlich den Constructor. Zu einem anderen Zeitpunkt macht es C# auch nicht, nur das man es anders schreiben kann

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#8

Re: properties

  Alt 18. Apr 2006, 11:21
Zitat von sakura:
Zitat von Elvis:
Ging in Delphi noch nie...
Schon immer, dazu gibt es schließlich den Constructor. Zu einem anderen Zeitpunkt macht es C# auch nicht, nur das man es anders schreiben kann
Da es kein AfterConstruction in .Net gibt ist das aber schon nett.
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.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:03 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