Einzelnen Beitrag anzeigen

Rollo62

Registriert seit: 15. Mär 2007
3.908 Beiträge
 
Delphi 12 Athens
 
#1

DPR-Uses: Methode zum Include von zusätzlichen Files

  Alt 26. Apr 2019, 11:03
Hallo zusammen,

ich experimentiere gerade wie ich das Einbinden von Fixes der FMX(VCL)-Libraries bequemer gestalten kann.

Normalerweise müsste man eine Kopie der Library erstellen,
darin die nötigen Änderungen machen, und
dann diese dann per "Add New" in das Projekt aufnehmen.

Damit würde die gefixte Library statt der orginalen Delphi-Library ins Projekt eingebunden.
Das wird aber bei einigen Files ein ziemlicher manueller Aufwand.

Ich kann diese Liste der Library "Fixes" aber in eine Include-Datei schreiben:
Z.B. in einer Datei "_FmxFixes\_FmxFixes_Startup.inc"
Delphi-Quellcode:
  iOSapi.CoreLocation in '_FmxFixes\iOSapi.CoreLocation.pas',
  System.iOS.Sensors in '_FmxFixes\System.iOS.Sensors.pas',
  FMX.Media.Android in '_FmxFixes\FMX.Media.Android.pas',
Die "gefixten" Units liegen dann natürlich auch dabei.
In der DPR Datei kann ich diese Liste einfach zu den normalen Uses Definitionen includieren:

Delphi-Quellcode:
uses
  System.StartUpCopy,
  {$INCLUDE _FmxFixes\_FmxFixes_Startup.inc}   //<-- Das bindet die "Fixes" aus dem Includem it ein
  FMX.Forms,
  uMain in 'uMain.pas{Main_Frm};
Das funktioniert soweit super, und ist IMHO recht simpel.
So habe ich nur einen zentralen Einsprungpunkt für alle gewünschten Fixes, und
kann das leicht für verschiedene Versionen und Platformen warten.

Ein Problem damit ist, dass bei jeder Änderung der Forms, oder bei neuem Einbinden
von Forms, Frames, DataModules dieser Uses-Listen Eintrag zerstört wird.

Die sieht danach so aus:

Delphi-Quellcode:
uses
  System.StartUpCopy,
  {$INCLUDE}          //<-- Hier hat es mir die IDE den Dateinamen weggelöscht.
  FMX.Forms,
  uMain in 'uMain.pas{Main_Frm},
  Unit1 in 'Unit1.pas{Form1};
Da ich nur mit einer MainForm und einer Handvoll DatenModulen arbeite, und normalerweise weitere Units per Runtime hinzufüge, ist das erträglich.

Trotzdem ist ist es nervig nach einer Änderung diese Zeile wieder manuell zu korrigieren,
gibt es dafür evtl. einen Workaround, oder eine bessere Lösung ?

Für ein paar erleuchtende Ideen und Vorschläge wäre ich euch dankbar.

Rollo
  Mit Zitat antworten Zitat