| Autor |
Beitrag |
digi_c
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Fr 10.02.06 13:37
Hiho Delphine
Ich stecke gerade vor einem Problem und zwar muss ich den Wert einer Klasse mal als integer nach außen kriegen mal als Wert der Aufzählung TUserstate. Deshalb wäre IMHO das Optimalste
Delphi-Quelltext 1: 2:
| property State:integer read GetState write SetState; property State:TUserState read fState write fState; |
Aber das geht nicht da man den Namen einer Eigenschaft nur einmal vergeben kann. Die Klasse stammt auch direkt von TObject ab also kann ich auch nicht mit Überschreiben arbeiten wie es in der Hilfe zu property steht.
Hat jemand ne Idee? Ich habe jetzt erstmal das ganze StateInt genannt um weiter zu kommen....
Zuletzt bearbeitet von digi_c am Fr 10.02.06 13:48, insgesamt 1-mal bearbeitet
|
|
jasocul
      
Beiträge: 6395
Erhaltene Danke: 149
Windows 7 + Windows 10
Sydney Prof + CE
|
Verfasst: Fr 10.02.06 13:44
Evtl geht es mit varianten Records (gibts in der OH auch mind. ein Beispiel zu). Allerdings habe ich noch nie probiert diese als Property zu verwenden.
|
|
digi_c 
      
Beiträge: 1905
W98, XP
D7 PE, Lazarus, WinAVR
|
Verfasst: Fr 10.02.06 13:49
Also das was man unter C als union versteht? Und das als Property hmm.. daran gedacht habe ich schon aber ob da die Zuweisungskompatibilität erhalten bleibt...
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 10.02.06 15:53
Zur Möglichkeit das so zu deklarieren mal nur soviel:
Für Records wird keine RTTI gespeichert, bzw. ist diese unvollständig. Als Published-Properties kann man das dann auf jeden Fall nur eingeschränkt (wenn überhaupt) nutzen. Bei varianten Records wirst Du schon dadurch Probleme bekommen, dass Delphi diese stiefmütterlich behandelt und als depricated kennzeichnet. Ob er die überhaupt akzeptiert glaub ich nicht.
Properties Overloaded ist AFAIR nicht möglich; maximal Property-Overriding, aber das bringt an dieser Stelle nichts.
Die Empfehlung an dieser Stelle wäre hier das Property unter zwei getrennten Namen zu publishen, weil Delphi damit auf jeden Fall zurecht kommt - auch wenn's Kacke ist ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
r2c2
      
Beiträge: 324
Erhaltene Danke: 2
Linux
|
Verfasst: Fr 10.02.06 18:41
BenBE hat folgendes geschrieben: | Properties Overloaded ist AFAIR nicht möglich;
|
Bei D2005 is das schon möglich... und manchmal überaus praktisch...
| Zitat: |
Die Empfehlung an dieser Stelle wäre hier das Property unter zwei getrennten Namen zu publishen, weil Delphi damit auf jeden Fall zurecht kommt - auch wenn's Kacke ist ... |
Jo. Oder du bastelst dir ne Klasse, die je nachdem, was verlangt is, n Integer oder n Enum zurückliefert/annimmt...
mfg
Christian
_________________ Kaum macht man's richtig, schon klappts!
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Fr 10.02.06 18:58
Da kannst Du aber auch gleich dir nen Variant programmieren und diesen im Property übergeben ...
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
|