AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi deprecated wird nicht als Warnung angezeigt
Thema durchsuchen
Ansicht
Themen-Optionen

deprecated wird nicht als Warnung angezeigt

Offene Frage von "Sergej_Molotov"
Ein Thema von Sergej_Molotov · begonnen am 22. Feb 2010 · letzter Beitrag vom 25. Feb 2010
Antwort Antwort
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#1

deprecated wird nicht als Warnung angezeigt

  Alt 22. Feb 2010, 13:17
Hallo Zusammen,

ich wollte mal nachfragen, ob jemand von euch auch dieses Problem (Feature) des Compilers auch schon mal aufgefallen ist und wie man dies umgehen kann.

Folgendes Szenario:

Delphi-Quellcode:
...
implementation

uses
  Unit2;


{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  Unit2.bla; // hier zeigt der Compiler KEINE deprecated Warnung an
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  bla; // hier zeigt der Compiler eine deprecated Warnung an
end;
...
In der zweiten Unit Unit2 sieht die Prozedure bla wie folgt aus:

Delphi-Quellcode:
unit Unit2 deprecated;

interface

procedure bla; deprecated;

implementation

procedure bla;
begin
  // macht nix
end;

end.
Wenn ich nun die Sourcen compiliere, dann erscheint nur bei procedure TForm1.Button2Click(Sender: TObject); eine Warnung an.

Nun meine Frage:
Warum zeigt er diese Warnung nicht bei TForm1.Button1Click(Sender: TObject); an?

Hinweis: Ich benutze Delphi 2006
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#2

Re: deprecated wird nicht als Warnung angezeigt

  Alt 22. Feb 2010, 14:31
Ist in D2007 auch so. Das würde ich prinzipiell auch als Bug ansehen, allerdings ist das schon ein Grenzfall. Wenn schon die ganze Unit2 deprecated ist, wieso deprezierst du zusätzlich noch eine Routine in selbiger Unit?
Uli Gerhardt
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#3

Re: deprecated wird nicht als Warnung angezeigt

  Alt 24. Feb 2010, 07:19
Dies sollte natürlich nur ein Beispiel sein. Ich hätte auch noch die Funktion hurz und blaeh erstellen können und diese dann als nicht deprecated markieren können.

Gruß
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von uligerhardt
uligerhardt

Registriert seit: 19. Aug 2004
Ort: Hof/Saale
1.735 Beiträge
 
Delphi 2007 Professional
 
#4

Re: deprecated wird nicht als Warnung angezeigt

  Alt 24. Feb 2010, 08:20
Zitat von Sergej_Molotov:
Dies sollte natürlich nur ein Beispiel sein. Ich hätte auch noch die Funktion hurz und blaeh erstellen können und diese dann als nicht deprecated markieren können.
Jo, aber da hurz oder blaeh in einer deprecated Unit wären, würde man trotzdem eine entsprechende Warnung kriegen, wenn man sie benutzen würde. Halt für das Usen der Unit und nicht für den Aufruf der Routinen.

Anders ausgedrückt: Für den Aufruf von bla in Button2Click aus deinem Ursprungspost kriegst du ja zwei Warnungen: eine, dass die enthaltende Unit deprecated ist, und eine, dass die Routine selbst deprecated ist.
Uli Gerhardt
  Mit Zitat antworten Zitat
Sergej_Molotov

Registriert seit: 18. Jul 2006
61 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: deprecated wird nicht als Warnung angezeigt

  Alt 25. Feb 2010, 07:43
Damit hast du natürlich recht.

Zitat:
[Pascal Warnung] Unit1.pas(27): W1006 Unit 'Unit2' ist veraltet
[Pascal Warnung] Unit1.pas(39): W1000 Symbol 'bla' ist veraltet
[Pascal Warnung] Project1.dpr(6): W1006 Unit 'Unit2' ist veraltet
Wir haben nur hier bei uns das Problem, dass die Unit normalerweise nicht veraltet ist, sondern nur einzelne Funktionen. Wenn man die Funktion mittel [Unit].[Funktionsname] aufruft, erscheint eben keine depreceted Meldung.

Zitat:
[Pascal Warnung] Unit1.pas(39): W1000 Symbol 'bla' ist veraltet
Wie gesagt, halte dies für eine sehr unschöne Sache in der BDS, dass solche Sachen vom Compiler nicht als Warnung angezeigt werden.

Wie sieht es denn bei neueren Version von Delphi aus? Hat da jemand schon Erfahrungen gemacht
Thomas
  Mit Zitat antworten Zitat
Benutzerbild von HeikoAdams
HeikoAdams

Registriert seit: 12. Jul 2004
Ort: Oberfranken
661 Beiträge
 
FreePascal / Lazarus
 
#6

Re: deprecated wird nicht als Warnung angezeigt

  Alt 25. Feb 2010, 08:29
Ich halte das eher für eine Inkonsequenz. Immerhin warnt der Compiler ja beim "normalen" Aufruf der Prozedur Bla, das diese veraltet ist. Warum dann also warnt er dann nicht auch, wenn die Prozedur Bla über Unit2.Bla aufgerufen wird?

Mach doch einfach dazu mal einen Eintrag der QC von Embra und schau, was die Jungs dort dazu sagen
Jeder kann ein Held werden und Leben retten!
Einfach beim NKR oder der DKMS als Stammzellenspender registrieren! Also: worauf wartest Du noch?
  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 06:16 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