Was ich aber gerne noch wüsste ist, wann das eingestellte Zeugs denn überhaupt gemacht wird. Beim Speichern? Beim Laden? Beim Kompilieren?
Aktuell reagiert es auf das Öffnen und Speichern von Units und Projektdateien und beim Wechsel des Projekts. Was wann gemacht wird hängt von der jeweiligen Option ab.
Die Hauptaufgabe ist die
Normalisierung der dproj-Datei um die Versionsverwaltung einfacher zu machen. Zumindest in nicht ganz aktuellen Delphi-Versionen genügt schon ein Laden und Speichern eines Projekts um Änderungen in der dproj-Datei hervorzurufen. Das wird durch eine konsistente Sortierung vermieden.
Das
Splitten der dproj-Datei basiert auf der gleichen Anforderung allerdings unter dem Aspekt der Arbeit im Team. In der dproj-Datei werden diverse Einträge gemacht, die sich auf das System des aktuellen Entwicklers beziehen oder von ihm bewusst geändert wurden, ohne eine Absicht, die an die anderen Team-Mitglieder weiterzugeben (z.B. Aufruf-Parameter, Debugger-Einstellungen, aktuelle Konfiguration oder Plattform). Diese Änderungen werden beim Speichern aus der dproj extrahiert und lokal abgespeichert. Beim nächsten Öffnen werden die dann wieder eingepflegt.
Die Einträge für
Excluded Packages werden automatisch an die aktuelle
IDE angepasst. Arbeitet man auf verschiedenen Systemen oder mit unterschiedlichen Registry Keys ändert sich das dauernd. Deswegen werde die komplett entfernt.
Clear Settings in Child Configurations greift ein Problem der
IDE auf, die eine Vererbung von Einstellungen in der Hierarchie der Build-Konfigurationen nicht sinnvoll manipulieren kann, wie es z.B. bei den Compiler-Optionen der Fall ist. Das betrifft insbesondere die Versions-Info, aber auch die Einstellungen für Packages und Applications. Hier werden einfach alle vererbten Einstellungen gelöscht, so dass immer die Basis-Einstellung Gültigkeit hat. Manche Einstellungen erfordern eine Plattform - dann gilt die entsprechende Plattform-Basis Konfiguration.
Platforms: Enable Missing macht dem Projekt alle Plattformen hinzu, die in der aktuellen
IDE Version bekannt sind (auch wenn nicht installiert). Damit lassen sich auch bei alten Projekte die neuen Plattformen hinzufügen.
Platforms: Remove Unused entfernt alle Einträge für Plattformen, die in dem Projekt nicht aktiv sind. Bei einem Aktivieren einer Plattform würden die eh neu erzeugt werden.
Auto LibSuffix setzt das LIBSUFFIX für das
Package-Projekt auf die des
rtl-Packages.
Refresh Form Type ergänzt fehlende
DFM und FMX in Form-Einträgen, was zu einem Problem beim Hinzufügen von Frames führen konnte.
Clean Line Feeds forciert beim Öffnen einer Datei die Zeilenenden auf CR/LF.
Einige dieser Optionen (z.B.
Auto LibSuffix, Refresh Form Type, Clean Line Feed) sind in neueren Delphi-Versionen obsolet.