Ich denke Schuld and den verschobenen Breakpoints war die Design-Komponente,
welche eine gemeinsame
Unit mit hauptsächlich globale Konstanten eingebunden hat.
Die Konstanten hatte ich mal ergänzt und umgebaut, aber vergessen den Design-
Unit mit upzudaten.
Ich habe diese
Unit jetzt neu gebuildet und installiert, die Breakpoints stimmen wieder.
Alle Fixes liegen jetzt wie bisher in der
DPR, und im Verzeichnis neben der
DPR.
Delphi-Quellcode:
Uses
...
, FMX.ListView in '_FmxFixes\FMX.ListView.pas'
...
;
Das funktioniert soweit, so hatte ich es auch bisher.
Zum Thema Aufräumen der Units aus der
DPR bin ich aber noch nicht ganz am Ziel.
Ich möchte die
DPR möglichst sauber halten, aber das Zusammenfassen aller Fixes in einer
Unit
z.B. FmxFixes.pas
Delphi-Quellcode:
//DPR
Uses
...
, FmxFixes
in '
_FmxFixes\FmxFixes.pas'
//<== Da kann man es genau spezifizieren
...
;
//FmxFixes.pas
Uses
...
, FMX.ListView
//<== hier nicht mehr, die gefixten Units MÜSSEN wohl neben der DPR liegen
...
;
A. Das kompiliert eben leider nicht.
Wenn an anderer Stelle FMX.ListView benutzt wird, dann nimmt er das orginale System-
Unit.
Ich möchte aber gerade den ganzen Müll aus der
DPR entfernen, und möglichst zentral einbinden,
z.B. über FmxFixes.pas, FmxFixes.inc, o.ä.
B. Abhilfe schafft, wenn ich im Search Library als ersten Suchpfad die _FmxFixes mit angebe,
dann wird im Unterverzeichnis _FmxFixes zuerst gesucht:
_FmxFixes\
Vergesse ich das Unterverzeichnis kompiliert es u.U. auch, aber keiner merkt es.
Kompilieren, Linken Ausführen funktioniert.
Wenn ich jetzt aber in irgendeiner anderen
Unit die auch FMX.ListView benutzt (oder auch in der FmxFixes.pas selbst),
dieses File öffne (mit Ctrl-Enter oder Context-Open File at Cursor),
dann wird NICHT das gefixte, sondern das Orginal-Unit geöffnet.
Im Editor können auch mal beide FMX.ListView.pas Units geöffnet sein, was mich extrem nervt,
denn das Öffnen per
IDE zeigt in der Regel immer das Falsche an.
Genauso hatte ich es damals auch mal beim Debuggen festgestelt, weshalb ich die Lösung oben mit allen Fixes neben der
DPR direkt in die
DPR eingebunden einsetze.
Es war für mich kein Verlass darauf von wo die
IDE sich gerade die Units holt, selbst wenn das der Compiler/Linker womöglich richtig macht.
Die Gefahr in der
IDE das Falsche File zu Editieren ist sehr hoch.
C. Fixes im Unterverzeichnis, aber direkt in die DPR einbinden:
Wenn ich jetzt die Fixes in den Unterveerzeichnissen angebe scheint es zu funktionieren, auch in der
IDE (dankesehr nochmal an Phillip), ich werde das mal weiter beobachten.
Ich meine es gab da auch vertauschte Units beim Debuggen.
Meine Lieblingslösung wäre das aber noch nicht, weil die
DPR zig Fixes enthalten muss.
Deshalb hatte ich es vor Jahren schonmal aufgegeben,
ich fürchte fast ich muss den ganzen Fixes-Müll in der DPR behalten.
Es ist wirklich zu blöd das Delphi keine Verzeichnisse im
Unit-Namen unterstützt, nur in der
DPR.