Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Kaputte *.dproj (oder: es ist kompliziert) (https://www.delphipraxis.net/192796-kaputte-%2A-dproj-oder-es-ist-kompliziert.html)

Rainer Wolff 19. Mai 2017 11:32

Kaputte *.dproj (oder: es ist kompliziert)
 
Ich habe zwar eine Lösung gefunden, aber das Problem noch nicht erkannt.

Ich verwende in meinen Projekten eine selbstgebaute Komponente, die von Pagecontrol abgeleitet ist. Die Komponente liest eine Konfigurationsdatei, in der zu öffnende Formulare definiert werden. Die Formulare haben einen RegisterClass() aufruf und werden dann über System.Classes.FindClass() gesucht und erzeugt. Zigfach verwendet, funktioniert.

Nun habe ich ein Projekt erweitert und gleichzeitig auf Berlin hochkonvertiert. Plötzlich öffnen sich meine Formulare nicht mehr (in TRegGroups.GetClass wird kein registriertes Formular gefunden).

Zum Einkreisen des Problems habe ich ein neues Projekt erstellt und nach und nach erst notwendige Formulare für ein Fenster, dann sämtliche Units aus dem Originalprojekt eingehängt, Fazit: *.dpr files identisch, alles läuft, alles gut.

Am Originalprojekt nochmals die *.dproj gelöscht und durch Projekt öffnen neu erzeugen lassen: Läuft nicht

Offensichtliche Differenzen kann ich im dproj nicht sehen, irgendwie sind debug und release cfg getauscht, etliche Optionen stehen an anderen Zeilen etc.

Letztlich wirklich:
-Einmal leeres Projekt erzeugt, alle units zugefügt: läuft,
-Einmal existierendes *.dpr verwendet und *.dproj neu erzeugen lassen: läuft nicht

(P.S. Beim Hochkonvertieren von XE hatte ich bei dem Projekt und auch bei anderen schon das Problem, daß ein OutOfMemory kommt, wenn ich von der Original *.dproj hochkonvertiere, da half dann aber immer *.dproj löschen und neu anlegen lassen)

Hat hier jemand schon ähnliche Erfahrungen und Tipps?

Gruß Rainer

Ghostwalker 19. Mai 2017 11:43

AW: Kaputte *.dproj (oder: es ist kompliziert)
 
hmm....

Für mich hört sich das verdächtig nach einem Memory-Leak an. Grad was schon die Konvertierungen auf XE betrifft.

Es wär aber auch möglich (evtl. durch andere Reihenfolge der Units in der Uses-Klausel), das versucht wird eine
Formular zu erzeugen, bei dem das Registrieren der Klasse fehlschlug oder sowas.

Rainer Wolff 19. Mai 2017 12:56

AW: Kaputte *.dproj (oder: es ist kompliziert)
 
Memoryleak: Warum sollte dann die selbe dpr mit einer anderen dproj laufen?

Werde ich aber mal untersuchen, MemoryleaksOnShutdown zeigt aktuell Meldungen.

Ghostwalker 20. Mai 2017 08:15

AW: Kaputte *.dproj (oder: es ist kompliziert)
 
Zitat:

Memoryleak: Warum sollte dann die selbe dpr mit einer anderen dproj laufen?
Weil ein kleiner Unterschied in den Projekteinstellungen (dproj) schon reicht, das sich das Programm
anders verhält.

Das ist das verfluchte an Memory-Leaks. Oft verursachen sie nicht mal einen Fehler und alles läuft wunder bar, bis man eine kleine Änderung macht (oft reicht schon eine zusätzliche Boolsche Variable) und schon schepperts.


Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr.

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