AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"
Thema durchsuchen
Ansicht
Themen-Optionen

Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"

Ein Thema von Harry Stahl · begonnen am 5. Jan 2019 · letzter Beitrag vom 7. Jan 2019
Antwort Antwort
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#1

AW: Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"

  Alt 5. Jan 2019, 13:47
Das blöde daran war, dass der Aufruf von Renamefile in einer eigenen Funktion innerhalb einer Prozedur steckt. Da reicht es wohl nicht, die Funktion mit den Hints Off / Hints On Schaltern zu umschließen, sondern man muss dann die ganze Prozedur umschließen.

Aber ich habe jetzt noch einen Weg gefunden, der ohne die Meldung auskommt:

System.ioutils.TFile.Move(Oldname, ASaveFileName);

Da wird unter Windows am Ende zwar auch die gleiche Funktion aus der Winapi genommen, aber wenigstens unterbleibt die überflüssige Meldung.
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"

  Alt 5. Jan 2019, 15:35
System.ioutils.TFile.Move(Oldname, ASaveFileName);

Da wird unter Windows am Ende zwar auch die gleiche Funktion aus der Winapi genommen, aber wenigstens unterbleibt die überflüssige Meldung.
... weil der Compiler diesen Aufruf nicht mehr zu Gesicht bekommt. Für Plattform-übergreifende Entwicklung sind ja eben genau die IOUtils gemacht.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#3

AW: Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"

  Alt 5. Jan 2019, 15:45
Wobei nach meinem Verständnis eigentlich alle System.XXX (außer natürlich System.Win.XXX spezifische units) Plattform-neutral sein sollten.

Z.B. System.Threading, etc. nutze ich ja unter allen Plattformen, hätte man bei "System.sysUtils" eigentlich insofern auch erwarten können, dass die vollständig neutral ist und nicht bei einer spezifischen Funktion meckert, dass eine Winapi nicht eingebunden wäre...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"

  Alt 5. Jan 2019, 16:00
Ich hätte eher erwartet, daß für SysUtils.RenameFile so was wie "deprecated - use System.IOUtils.TFile.Move" kommt.

Aber: Das Inline hat für VCL-Entwickler immerhin noch einen kleinen Performance-Vorteil. Den müsste man für die FMX-Entwickler aufgeben. Andererseits können die aber ja auch gleich TFile.Move benutzen und alle sind zufrieden. Nicht in allen Fällen gibt es diesen Ausweg.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Benutzerbild von Harry Stahl
Harry Stahl

Registriert seit: 2. Apr 2004
Ort: Bonn
2.558 Beiträge
 
Delphi 12 Athens
 
#5

AW: Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"

  Alt 5. Jan 2019, 16:04
Ich hätte eher erwartet, daß für SysUtils.RenameFile so was wie "deprecated - use System.IOUtils.TFile.Move" kommt.
Genau das wäre auch meine Erwartung gewesen... Na ja, sei es drum, Problem ist ja behoben...
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

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

AW: Meldung "Inline-Funktion XZY nicht expandiert, weil Unit ABC nicht in uses Liste"

  Alt 5. Jan 2019, 16:13
Genau das wäre auch meine Erwartung gewesen...
Mit dem "Aber" in meinem Post wollte ich eigentlich verdeutlichen, daß es durchaus sinnvoll sein kann, diese Funktion direkt zu verwenden, die Warnung zu beherzigen und die Winapi aufzunehmen. Wenn man tatsächlich nicht rein für Windows (VCL) entwickelt, kann man das ja immer noch durch ein IFDEF lösen. Ist halt umständlicher als TFile.Move zu verwenden, aber schneller (unter Windows). Deswegen hat sowohl das inline als auch die Warnung ihre Berechtigung.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  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 21:55 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