Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Datum / Zeit exe vs Quelle (https://www.delphipraxis.net/207587-datum-zeit-exe-vs-quelle.html)

BigAl 12. Apr 2021 09:45

Datum / Zeit exe vs Quelle
 
Hallo zusammen,

seit gestern habe ich das Problem, dass mich die IDE beim Debuggen ständig damit nervt, dass ich meinen Code geändert hätte. Ich kann das zwar ignorieren, aber das Verhalten stört extrem. Ich habe das auch nicht immer, aber sehr oft (vielleicht 9 von 10 mal).

Ich nutz die aktuellste Delphi Pro (10.4.2).

Was passiert:

Ich kompiliere die Applikation. Dazu werden von der IDE die Quellen natürlich zuerst gespeichert. Soweit passt auch alles (Habe Datum und Zeit der Dateien geprüft). Sobald ich im Debugger bin ist auf einmal die Zeit der main.dfm oder die Zeit der main.pas neuer als die Zeit der exe... In der IDE selbst zeigt es keinerlei Änderung an. Selbst "File/Save all" ist deaktiviert, was normalerweise ja auch aussagt, das nichts geändert wurde.

Wie gesagt: Das Verhalten habe ich erst seit gestern. Die wesentliche Änderung die ich gemacht habe ist eine hinzugefügte dependency auf ein Bibliothek...

Noch ein update: Das die main.dfm ändert ihr Datum sobald ich das Programm z.B. aus einem Breakpoint fortsetzen will. Setze ich also einen Breakpoint und die Applikation stoppt ist noch alles ok. Sobald ich die Ausführung fortsetzen will wird der Zeitpunkt der main.dfm geändert (auf etwa zwei bis drei Sekunden nach der exe-Zeit) und die Meldung erscheint. Die Zeit der dfm hat nichts mit der tatsächlichen Uhrzeit zu tun. Die ist da schon viel weiter...

Update 2: Die dfm wird nicht geändert (binär identisch). Lediglich der Zeitstempel wird verändert...

Hat irgendwer eine Idee woran das liegen könnte?

Alex

himitsu 12. Apr 2021 09:54

AW: Dateum / Zeit exe vs Quelle
 
Hast du die Zeitumstellung verschlafen und gestern erst gemacht?

Delphi merkt sich in LocalTime das Änderungsdatum der geöffneten Dateien (PAS/DPR) und vergleicht sie regelmäßig. (beim Ändern der Zeitzone raucht das dann ab)

BigAl 12. Apr 2021 09:56

AW: Dateum / Zeit exe vs Quelle
 
Zitat:

Zitat von himitsu (Beitrag 1486929)
Hast du die Zeitumstellung verschlafen und gestern erst gemacht?

:) Der musste kommen...

himitsu 12. Apr 2021 11:43

AW: Dateum / Zeit exe vs Quelle
 
Hätte ja sein können. :stupid:

Von allen Uhren hatte die Uhr im Computer (der die ganze Zeit aktiv und mit dem Netz verbunden war) sich Montags noch nicht umgestellt ... hab dann selber manuell an Zeitzone/Sommer-/Winterzeit rumgespielt, bis es irgendwann wieder stimmte ... k.A. ob/wann das von alleine passiert wäre.


Das Datum der EXE hat hierfür nichts zu bedeuten.
Zeiten der EXE und DCU werden nur dafür genommen, ob beim nächsten F9 die EXE/DLL/BPL neu kompiliert wird,
und die Zeiten von PAS und DCU bestimmen, ob beim Compile (beim Build immer) die DCU neu kompiliert wird. (bei INC funktioniert es leider nicht und Compile ignoriert deren Änderung)



Die DDevExtension haben (glaub ich) auch soeine Funktion, welche das Verhalten der IDE mit eigenem Code überschreiben.
Vielleicht mal damit probieren, ob es weg geht.

BigAl 12. Apr 2021 11:57

AW: Dateum / Zeit exe vs Quelle
 
Zitat:

Zitat von himitsu (Beitrag 1486938)
(bei INC funktioniert es leider nicht und Compile ignoriert deren Änderung)

INCs werden eigentlich korrekt betrachtet wenn Du sie im Projekt mit aufnimmst. Ich habe z.B. einige "fremde" Dateien (glsl-Dateien) die bei Bedarf das Neukompilieren der Ressourcen erfordern. Auch da werden Änderungen wunderbar erkannt.

Das Problem ist wie gesagt: Es stimmt alles bis ich zum Debuggen das Programm unterbreche (Breakpoint oder einfach nur F4). In dem Moment wo ich das Program weiter ausführen will (Run oder Step) ändert sich der Zeitstempel der main.dfm. Es wird also ein "touch" gemacht. Inhaltlich ändert sich an der Datei nichts...

himitsu 12. Apr 2021 12:32

AW: Datum / Zeit exe vs Quelle
 
Hast du "speichern beim kompilieren" aktiviert?

Das ist eh sinnlos, weil es nach dem Kompilieren speichert, was nichts bringt, wenn die IDE beim Kompilieren verreckt.
Außerdem gibt es mit dem neuen Recovery, seit einigen Jahren, eine schönere Möglichkeit.



Du meinst also doch die EXE (Quellcode hat sich geändert, soll neu kompiliert werden)
und nicht Datei hat sich geändert, soll neu geladen werden.

Letzteres hab ich schon ewig nicht mehr gesehn. Kann sein, dass man es irgendwo abschalten kann.
Ich war aber davon ausgegangen, dass hier die geladenen/editierten Dateien in der IDE führend sind und nicht das Datum auf der Platte.
z.B. wenn beim Debuggen in die IDE gewechselt und dort "ausversehn" was geändert wurde.


[add]
Tools > Optionen > IDE > Compilierung und Ausfühung
> Geänderte Projekte immer compilieren

siehe auch
Delphi-Quellcode:
F6: compil



Vielleicht auch mal probehalber die "Unit- und Verzeichnis-Cache" deaktivieren.
Das abschalten von gewissen anderen Caches machte die IDE ja auch gleich mal viel schneller und besser.

BigAl 12. Apr 2021 12:36

AW: Datum / Zeit exe vs Quelle
 
Ja klar. Ist immer die erste Einstellung die ich mache. Die Chance, dass die IDE beim Start der Applikation crasht ist einfach zu hoch. Und das Recovery funktioniert in so einer Situation auch nur bedingt...

Redeemer 12. Apr 2021 12:41

AW: Dateum / Zeit exe vs Quelle
 
Zitat:

Zitat von himitsu (Beitrag 1486938)
Hätte ja sein können. :stupid:

Von allen Uhren hatte die Uhr im Computer (der die ganze Zeit aktiv und mit dem Netz verbunden war) sich Montags noch nicht umgestellt ... hab dann selber manuell an Zeitzone/Sommer-/Winterzeit rumgespielt, bis es irgendwann wieder stimmte ... k.A. ob/wann das von alleine passiert wäre.

Hatte ich auch unter Windows 20H2, allerdings ist das meine erste Zeitumstellung unter Windows 10 im Privaten. Umstellung erfolgte erst bei der nächsten Synchronisation mit dem Zeitserver.

himitsu 12. Apr 2021 12:45

AW: Datum / Zeit exe vs Quelle
 
Beim Recovery die Zeit runterschreiben (1 Minute), beruhigt schonmal mehr.

Das Einzige, wo ich beim Recovery Probleme bemerke, ist bei neuen "ungespeicherten" Projekten/Units ... da wird zwar das Recovery erstellt,
aber es kommt beim Neustart keine Frage "hab was gefunden, soll ich's wiederherstellen?" und man muß beim Erstellen einer neuen Unit/Projekt aufpassen, weil dann das Recovery gelöscht/überschrieben wird.


Ja, bei unseren Packages ist die Chance auch sehr hoch, dass es beim Entladen des DesigntimePackage beim Kompilieren knallt, aber das raucht dann eben immer vor dem Speichern ab, womit diese Einstellung absolut sinnlos ist.
Schau mal in die DDevExtension oder war's das IdeFixPack?, da gab es ein "speichern beim Kompilieren", was vorher speichtert.

Ich will auch, dass gespeichert wird, wenn ich es will und nicht wenn die IDE gedenkt es zu machen.
Ich hätte nur gern, dass auch der Desktop gespeichert wird, wenn man "Speichern" sagt und nicht erst beim Schließen der IDE. Und wenn die IDE beim Schließen abkratzt, hätte ich gern, dass dabei der alte gespeicherte Desktop nicht ebenfalls geschrottet und beim Starten der IDE nicht alles komplett zerlegt und nicht alle Haltepunkte im Nirvana wären.


[ADD]
Neee, diese Option war es:
Tools > Optionen > Debugger-Optionen > Zum Neuerzeugen beim Debuggen geänderter Projekte auffordern

BigAl 12. Apr 2021 20:22

AW: Datum / Zeit exe vs Quelle
 
Da das alles irgendwie nichts hilft habe ich jetzt die Dependencies wieder rausgenommen und nehme halt zum Testen die benötigten Quellen in der Hauptapplikation auf. Dann werden die gespeichert und es wird erkannt wenn sich was ändert. Ist halt doppelt gemoppelt, aber die fertigen Sachen kann ich ja leicht wieder rausnehmen. Was solls.

Zu Zeitumstellung: Keine Ahnung was ihr für Computer habt. Ich kann meinen Nachts zuschauen bei der Umstellung. Und die die nicht bei der Umstellung gelaufen sind haben beim Start die richtige Zeit. Damit hatte ich noch nie Probleme...

Und zum Speichern: So groß sind meine Projekte nicht. Alles < 500tsd Zeilen. Beim Kompilieren ist mir das Delphi eigentlich noch nie abgeschmiert. Wenn, dann immer NACH dem speichern, beim Start der Applikation. Das etwas nicht gespeichert war hatte ich eigentlich - soweit ich mich erinnere - noch nie. Ich versuche allerdings auch meine IDE "clean" zu halten. Außer meinen 4/5 Standardbibliotheken versuche ich alles mit "Bordmitteln" zu machen. Auch wenn ich mir manchmal die Treffsicherheit von Visual-Studio (speziell beim Code-Insight und beim Debuggen) wünsche - aber damit arbeite ich demnächst ja auch wieder :-).

Alex


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:40 Uhr.
Seite 1 von 2  1 2      

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