Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Variable wurde deklariert aber in XYZ nicht verwendet (https://www.delphipraxis.net/195963-variable-wurde-deklariert-aber-xyz-nicht-verwendet.html)

Codehunter 11. Apr 2018 10:54

Delphi-Version: 10.2 Tokyo

Variable wurde deklariert aber in XYZ nicht verwendet
 
Hallo,

mich irritiert hier ein Compilerhinweis:
Delphi-Quellcode:
procedure Produce;
var
  D: TDirectory; // <-- [dcc32 Hinweis] foo.pas(123): H2164 Variable 'D' wurde deklariert, aber in 'Produce' nicht verwendet
  S: string;
begin
  for S in D.GetFiles(TheFolder, TheFileMask) do begin

  end;
end;
Heilen kann man das ja so (ist mir klar):
Delphi-Quellcode:
procedure Solve;
var
  S: string;
begin
  for S in TDirectory.GetFiles(TheFolder, TheFileMask) do begin

  end;
end;
Allerdings wüsste ich schon gerne, weshalb die obere Variante einen Hinweis bringt. Denn augenscheinlich wird "D" ja verwendet.

Am Rande bemerkt finde ich es erstaunlich, dass dieser Shortcut für die String-Iteration so funktioniert ohne dass sich das in einer Endlosschleife festläuft.

Grüße
Cody

Neutral General 11. Apr 2018 11:01

AW: Variable wurde deklariert aber in XYZ nicht verwendet
 
Es sieht nur so aus als würde D verwendet werden.
TDirectory.GetFiles ist eine Klassenmethode und benötigt keine Variable/Instanz. Und dementsprechend wird selbst bei D.GetFiles die D-Variable nicht genutzt.

himitsu 11. Apr 2018 11:56

AW: Variable wurde deklariert aber in XYZ nicht verwendet
 
Wird nur nicht verwendet, wenn es eine statische Klassenmethode ist.

Bei einer normalen Klassenmethode würde es verwendet und als Self übergeben, bzw. genauer Self.ClassType wird übergeben, aber da müsste dann die Meldung "D wurde nicht initialisiert" erscheinen.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:51 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