AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used
Thema durchsuchen
Ansicht
Themen-Optionen

[dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

Ein Thema von philipp.hofmann · begonnen am 28. Jan 2021 · letzter Beitrag vom 28. Jan 2021
Antwort Antwort
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
898 Beiträge
 
Delphi 10.4 Sydney
 
#1

[dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 10:23
Hi,

wie kann es zu einem Hint beim Kompilieren kommen, wenn ich diese eigentlich an der Stelle ausgeschaltet habe?

Code:
[dcc64 Hint] myIcTrainer.pas(33130): H2077 Value assigned to 'bugInfo' never used
[dcc64 Hint] myIcTrainer.pas(33126): H2077 Value assigned to 'bugInfo' never used
[dcc64 Hint] myIcTrainer.pas(33115): H2077 Value assigned to 'bugInfo' never used
[dcc64 Hint] myIcTrainer.pas(33105): H2077 Value assigned to 'bugInfo' never used
[dcc64 Hint] myIcTrainer.pas(33095): H2077 Value assigned to 'bugInfo' never used
[dcc64 Hint] myIcTrainer.pas(33087): H2077 Value assigned to 'bugInfo' never used
Delphi-Quellcode:
  {$HINTS OFF}
    bugInfo:=5;
  {$HINTS ON}
Der Hint stimmt auch nur bedingt. Ich fange in der Methode eine Exception und über diesen Integer-Wert sehe ich dann auch in Logs, welche Teile des Codes durchlaufen worden sind.
Nur wenn es keine Exception gibt, stimmt der Hint soweit. Wäre mir ja egal, wenn ich ihn ausblenden könnte.

Grüße, Philipp
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
11.476 Beiträge
 
Delphi 12 Athens
 
#2

AW: [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 11:25
Du musst die Hints über den gesamten Scope von bugInfo abschalten. Genau genommen geschieht die Nicht-Verwendung ja auch außerhalb deiner {$HINTS OFF/ON}-Klammer.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
philipp.hofmann

Registriert seit: 21. Mär 2012
Ort: Hannover
898 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 13:00
Danke, dies war mir nicht bewusst.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 16:55
Jupp, die Meldungen kommen von ja erst später. (dort wo du zuweist, weiß ja noch niemand, was nachher passiert)
* entweder bei der nächsten Zuweisung, oder am Ende des Scopes, wo die Variable wegfliegt und wo jetzt erst erkannt wird, dass der letzte zugewiesene Wert nirgendwo benutzt wurde.

Aber willst du nicht lieber den Fehler beheben, anstatt nur die Fehlermeldung auszublenden?
Also diese Zuweisung entfernen, da sie ja eh nutzlos ist.
$2B or not $2B
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.117 Beiträge
 
Delphi 12 Athens
 
#5

AW: [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 17:09
Aber willst du nicht lieber den Fehler beheben, anstatt nur die Fehlermeldung auszublenden?
Ich sehe gerade diese Meldung auch als sehr nervig, weil ich oft Test-Code einbaue der dann immer mit so einer blöden Meldung während der Entwicklung hochpoppt.

Wenn man die HINTs so wegcklicken könnte wie die Warnings wäre das ein großer Fortschritt.

Warnings klicke ich nämlich grundsätzlich nie weg, sondern sehe sie als Fehler an,
aber insbesonderes dieses Hint würde ich im DEBUG wegclicken und in RELEASE bereinigen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 18:08
Standardmäßig sind in den Profilen Debug und Release auch passende DEFINEs eingetragen. (Projektoptionen > Erzeugen > Delphi-Compiler : Bedingungen)

Somit wäre es möglich die Hints im Debugmodus auszublenden.
Einfach ein {$IFDEF DEBUG} {$HINTS OFF} {$ENDIF} oben in die Unit rein.

Da aber Viele im Delphi nur im Debug-Modus arbeiten
und das Release z.B. von einem BuildTool compilieren lassen, wo sie auch noch vergessen sich die Meldungen ausgeben zu lassen und wenn doch, soe dann meistens sich garnicht ansehen ...
Also da wäre es dann besser sich unter Debug noch ein weiteres Profil anzulegen und sich dort ein eigenes DEFINE einzutragen und das dafür zu nutzen.

Basis
* Debug
* * DebugWithoutHints
* Release

Bei uns heißt soein Profil inzwischen DebugWithoutEurekalog, weil der Dreck mich im Debugger seit Jahren zur Verzweiflung bringt, mit all den kranken Hooks und wo man beim Fehler dann oft im Code von Eurekalog landet und dann ewig braucht, bis zur eigentlichen Fehlerstelle (falls man es bis dahin überhaupt noch schafft).


Besser wäre es aber, wenn man es bei den Hints genauso machen könnte, wie mit den Warnings,
also nur das abschalten, was "nervt", anstatt einfach Alles zu deaktivieren.
z.B. statt {$WARNINGS OFF} geziehlt ein {$WARN SYMBOL_PLATFORM OFF} , weil es totaler Schwachsinn ist, dass in einem Windows-Only-Programm sich ständig der Compiler über plattformabhängigen Code aufregt.
Man nehme also aus der Warnung den "Code", schlage nach was dazu die Option ist, und nehme das dann, damit alle anderen wichtigen Warnungen/Hinweise weiterhin angezeigt werden.
http://docwiki.embarcadero.com/RADSt...sages_(Delphi)
$2B or not $2B

Geändert von himitsu (28. Jan 2021 um 18:13 Uhr)
  Mit Zitat antworten Zitat
Rollo62

Registriert seit: 15. Mär 2007
4.117 Beiträge
 
Delphi 12 Athens
 
#7

AW: [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 18:15
Besser wäre es aber, wenn man es bei den Hints genauso machen könnte, wie mit den Warnings,
also nur das abschalten, was "nervt", anstatt einfach Alles
Genau das meine ich, denn mich nervt nur das Eine, siehe oben.
Alle anderen Hints sehe ich ähnlich wie Warnings, als Fehler an,
und versuche sie zu Beseitigen.
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

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

AW: [dcc64 Hint] - H2077 Value assigned to 'XYZ' never used

  Alt 28. Jan 2021, 18:44
Joar, in diesem Fall ist es halt wirklich nervig, dass man zum auskommentierten/entIFDEFten DebugCode auch noch oben die Variable auskommentieren/entIFDEFen muß,
aber wenn man es so macht, dann ist auch diese Meldung weg.

PS: Hierfür sind die neuen InlineVariablen echt eine geile Erfindung.
Delphi-Quellcode:
...
//var DebugVar := irgendwas; if DebugVar <> 0 then LogMessage(blablabla, DebugVar);
...
(bei mehreren Debugzeilen, in einem Scope, das "var" nur beim Ersten, oder noch ein "begin" und "end;" ganz links/rechts in diese Zeile, um den Scope der Variable zu begrenzen)

Das ist mindestens genauso nützlich cool, wie beim for var i := 0 to 10 do Write(i); .



Du kannst natürlich auch ans Ende ein if DebugVar = 0 then ; in deine Funktion schreiben, wenn die Variable dauerhaft im Funktions-Header deklariert ist, dann kommt diese Meldung auch nicht mehr, da die Variable ja benutzt wird.
Je nach Typ oben noch ein DebugVar := 0; rein (bei String/Interface/DynArray/Variant nicht nötig), damit es dann nicht heißt "variable nicht initialisiert", sobald aller DebugCode auskommentiert ist.


Alle anderen Hints sehe ich ähnlich wie Warnings, als Fehler an,
und versuche sie zu Beseitigen.
Ich dachte das machen alle so.
$2B or not $2B

Geändert von himitsu (28. Jan 2021 um 18:59 Uhr)
  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 02:47 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