![]() |
Delphi-Version: 5
Deprecated nicht möglich bei Properties?
Ich wollte heute ein Property in einem Objekt als deprecated markieren, damit der Compiler in den verschiedenen Projekten die entsprechenden Stellen anzeigt, in dem das Property verwendet wurde.
Bei normalen Proceduren funktioniert das wunderbar. Folgender Fehler erscheint aber bei Properties.
Delphi-Quellcode:
property Bonusfaehig: boolean read fBonusfaehig write fBonusfaehig; deprecated;
Zitat:
|
AW: Deprecated nicht möglich bei Properties?
Ist leider ein bekannter (bekannt im Sinne von, steht im QC) Bug:
![]() |
AW: Deprecated nicht möglich bei Properties?
Schade.
|
AW: Deprecated nicht möglich bei Properties?
Mit einem kleinen Umweg schon möglich.
aus
Delphi-Quellcode:
property Bonusfaehig: boolean read fBonusfaehig write fBonusfaehig;
Delphi-Quellcode:
machen, dann wird
function GetBonusfaehig : boolean; deprecated;
procedure SetBonusfaehig(const Value : boolean); deprecated; property Bonusfaehig: boolean read GetBonusfaehig write SetBonusfaehig; deprecated;
Delphi-Quellcode:
für jeden Aufruf von Bonusfaehig generiert. Ist sowieso schöner immer Get- und Setmethoden zu verwenden.
deprecated
|
AW: Deprecated nicht möglich bei Properties?
Zitat:
Nicht aber bei der Verwendung der Eigenschaft selber irgendwo im Code. |
AW: Deprecated nicht möglich bei Properties?
Eben, sonst könnte man auch einfach
Delphi-Quellcode:
schreiben.
{$MESSAGE Warn 'Property ''Bonusfaehig'' ist veraltet'}
|
AW: Deprecated nicht möglich bei Properties?
Hallo...
wenn es nur darum geht die Stellen zu finden sollte doch eine Änderung des Typs der Property (nicht kompatibel) in der Deklaration reichen. Alle Stellen wo die Property verarbeitet wird sollte als Fehler auftauchen. |
AW: Deprecated nicht möglich bei Properties?
Ich bennen bei sowas den Property einfach um.
Meist kommt da ein _ vorne dran. Beim Kompilieren wird überall emeckert, weil es ja nun unbekannt ist und wo man es unverändert lassen will, kann man den Aufrufen ebenfalls schnell ein _ davorschreiben. Nachher dann wieder den _ löschen und beim kompilieren reicht es meistens F9+Enter+Entf, da der Compilier meist am Anfang des unbekannten Bezeichners wartet. Aber ja, es wäre natürlich praktischer, wenn man stattdessen die Depreacated-Warnunge bekommen könnte. |
AW: Deprecated nicht möglich bei Properties?
Deprecated im Getter oder Setter bringt nichts, da ich einen Hinweis an den Stellen haben möchte, an denen das Property verwendet wird.
Das Property (bzw. das Objekt) wird in vielen verschiedenen Projekten verwendet, deshalb ist ein Umbenennen oder Löschen nicht sinnvoll, da ich dann alle Projekte sofort ändern und testen müsste. Wenn mal ein Projekt bearbeitet werden muss, dann kann ich immer noch die Änderung vornehmen. Dazu sollte ich aber dann hingewiesen werden. Sollte ich dann aber unter Zeitdruck sein, dann kann ich es so lassen wie es ist und später ändern. Das ist der Vorteil von deprecated. |
AW: Deprecated nicht möglich bei Properties?
Tja, dann bleibt dir nur noch ein VOTE im QC und hoffen die schaffen es bs XE4.
In wie weit man sich mit den verschiedenen Refactoring-Funktionen behelfen könnte, weiß ich jetzt auch nicht. Im Notfall müßtest du eben alle Aufrufe (manuell) suchen und dir dort jeweils soeinen HINT {$MESSAGE} einbauen. Bei einem ReadOnly-Property könnte man das Property in eine Deprecated-Methode abändern. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:21 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