AGB  ·  Datenschutz  ·  Impressum  







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

Deprecated nicht möglich bei Properties?

Ein Thema von bernau · begonnen am 27. Sep 2012 · letzter Beitrag vom 28. Sep 2012
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#1

Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 13:45
Delphi-Version: 5
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.


property Bonusfaehig: boolean read fBonusfaehig write fBonusfaehig; deprecated;
Zitat:
"[DCC Fehler] gpl6objects.pas(3072): E2169 Felddefinition nicht erlaubt nach Methoden oder Eigenschaften"
Wie kann ich dies umgehen?
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 14:00
Ist leider ein bekannter (bekannt im Sinne von, steht im QC) Bug: http://qc.embarcadero.com/wc/qcmain.aspx?d=96350 (wobei Bug relativ ist, denn es steht auch nicht in der Dokumentation, dass deprecated für Eigenschaften geht)
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#3

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 15:23
Schade.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
David Martens

Registriert seit: 29. Sep 2003
205 Beiträge
 
Delphi XE Enterprise
 
#4

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 18:24
Mit einem kleinen Umweg schon möglich.

aus
property Bonusfaehig: boolean read fBonusfaehig write fBonusfaehig;
Delphi-Quellcode:
function GetBonusfaehig : boolean; deprecated;
procedure SetBonusfaehig(const Value : boolean); deprecated;

property Bonusfaehig: boolean read GetBonusfaehig write SetBonusfaehig; deprecated;
machen, dann wird deprecated für jeden Aufruf von Bonusfaehig generiert. Ist sowieso schöner immer Get- und Setmethoden zu verwenden.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.027 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#5

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 18:57
Mit einem kleinen Umweg schon möglich.

aus
property Bonusfaehig: boolean read fBonusfaehig write fBonusfaehig;
Delphi-Quellcode:
function GetBonusfaehig : boolean; deprecated;
procedure SetBonusfaehig(const Value : boolean); deprecated;

property Bonusfaehig: boolean read GetBonusfaehig write SetBonusfaehig; deprecated;
machen, dann wird deprecated für jeden Aufruf von Bonusfaehig generiert. Ist sowieso schöner immer Get- und Setmethoden zu verwenden.
Zumindest in XE werden hier nur 2 deprecated Warnings generiert, nämlich für die Verwendung der beiden Methoden als Getter und Setter.
Nicht aber bei der Verwendung der Eigenschaft selber irgendwo im Code.
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#6

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 19:30
Eben, sonst könnte man auch einfach
{$MESSAGE Warn 'Property ''Bonusfaehig'' ist veraltet'} schreiben.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.388 Beiträge
 
Delphi 12 Athens
 
#7

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 19:42
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.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#8

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 20:21
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.
$2B or not $2B

Geändert von himitsu (27. Sep 2012 um 20:25 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.295 Beiträge
 
Delphi 12 Athens
 
#9

AW: Deprecated nicht möglich bei Properties?

  Alt 27. Sep 2012, 23:18
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.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#10

AW: Deprecated nicht möglich bei Properties?

  Alt 28. Sep 2012, 00:13
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.
$2B or not $2B

Geändert von himitsu (28. Sep 2012 um 00:17 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 13:43 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