Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Die Delphi-IDE (https://www.delphipraxis.net/62-die-delphi-ide/)
-   -   Unit ExtDlgs was compiled with a different version (https://www.delphipraxis.net/191236-unit-extdlgs-compiled-different-version.html)

Shark99 22. Dez 2016 17:04

Unit ExtDlgs was compiled with a different version
 
Ich bin dabei ein Projekt von Delphi 5 auf Delphi 7 umzusetzen und bekomme eine komische Fehlermeldung:

[Fatal Error] Unit ExtDlgs was compiled with a different version of Buttons.TSpeedButton

Ich finde sie komisch weil sowohl ExtDlgs als auch Buttons.TSpeedButton ein Bestandteil von Delphi 7 sind, also zu keiner Komponente gehören. Der Sourcecode von ExtDlgs.pas und Buttons.pas ist ja auch da.

Kann mir bitte jemand helfen an welcher Stelle ich suchen soll.

Meine Vermutung ist dass es mit einer Komponente zusammenhängt, aber wie finde ich heraus welche?
Alle Komponenten die im Projekt sind haben immer .pas Dateien da (also keine die nur .dcu ist).

a.def 22. Dez 2016 17:07

AW: Unit ExtDlgs was compiled with a different version
 
Den Fehler hatte ich auch schon oft. Bereinige mal dein Projekt und kompiliere es neu. Das hilft bei mir immer.

A propos: Delphi 10.1 ist gratis ;)

Shark99 22. Dez 2016 17:11

AW: Unit ExtDlgs was compiled with a different version
 
Das Projekt hat 100.000 Zeilen Code und verwendet 30 Komponenten. Bereinigen ist gut. Das Versuche ich ja. Hab nur .dpr und pas Dateien im Projekt. Alle Delphi 5 dcus sind weg. Hab nach 8 Stunden alle Komponenten endlich zum laufen gebracht, versuche zu kompilieren und dann so eine nichts sagende Fehlermeldung.

Es muss leider Delphi 7 sein, weil es recht wenig Arbeit war die Delphi 5 Komponenten unter Delphi 7 zum laufen zu bekommen. Das Gleiche von Delphi 5 -> 10.1 würde ein extremer Aufwand sein.

nahpets 22. Dez 2016 17:25

AW: Unit ExtDlgs was compiled with a different version
 
Der Fehler tritt in der Regel auf, wenn unterschiedliche Versionen von DCU-Dateien vorhanden sind.

Du solltest die mal alle durchforsten oder an eine Stelle verschieben, die nicht in Reichweite des Compilers ist.

Ansonsten mal nicht mit F9 kompilieren, sondern mit UMSCH+F9, dann sollte alles neu gemacht werden.

Hilft das nicht, dann durchforste mal Deine Festplatte(n) nach allen *.Pas-Dateien, die irgendwo ExtDlgs enthalten. Mit dem Windows-/Totalcommander geht das eigentlich recht gut und schnell.
Hier schaust Du dann bitte, ob es gleichnamige Dateien an unterschiedlichen Orten gibt. Wenn ja, such bitte die entsprechend DCUs. Die könnten für das Problem verantwortlich sein.

Ansonsten mal in den Projektoptionen die Suchpfade ... aufräumen. Gibt es da Einträge, die auf gleichnamei Quelltexte in unterschiedlichen Verzeichnissen zeigen? Das kann auch zu Problemen führen.

Könnte es eventuell sein, dass irgendwo noch eine DCU von Delphi 5 im Suchpfad liegt?
Oder ein Pfad in den Projektoptionen von Delphi 5 übernommen wurde und von daher auf nicht zu Delphi 7 passende Dateien verweist?

Shark99 22. Dez 2016 17:32

AW: Unit ExtDlgs was compiled with a different version
 
Danke für die Tips, das hab ich aber schon alles gemacht.

- mache natürlich Rebuild all statt compile
- extdlgs.dcu ist nur zwei mal auf der Festplatte c:\Delphi7\Lib und c:\Delphi7\Lib\Debug
- Delphi 5 ist nicht auf dem Computer
- Alle Komponenten die das Projekt verwendet hab ich einzeln getestet und konnte compilieren

Es wird schon mit dem Pfaden irgendwie zusammenhängen (weil es noch etwa weitere 30 Komponenten andere Delphi 7 Projekte gibt), nur sind in der Library Path eben 60 Pfade. Ich versuche die schon hin und her zu schieben. Leider ohne Erfolg.

Shark99 22. Dez 2016 17:48

AW: Unit ExtDlgs was compiled with a different version
 
Hab es gefunden! Unter den 300 Projektdateien war die Buttons.pas von Delphi 5 direkt im Projektverzeichnis mit drin. Dort wurde ein Delphi 5 Bug gepatcht. Nach dem Löschen der Datei geht es weiter (zur nächsten Fehlermelduung :P).

nahpets 22. Dez 2016 17:51

AW: Unit ExtDlgs was compiled with a different version
 
Zitat:

Zitat von Shark99 (Beitrag 1357048)
- extdlgs.dcu ist nur zwei mal auf der Festplatte c:\Delphi7\Lib und c:\Delphi7\Lib\Debug

Das ist so ok.

Problematisch sind auch nicht diese beiden Dateien, sondern die, die sie irgendwo in der Uses stehen haben. Da muss es irgendwo einen Konflikt geben.

Prüf' bitte mal, ob alle DCUs, die irgendwie zum Projekt gehören, nach 'nem Rebuild auch ein aktuelles Datum haben. Dies gilt auch für alle DCU der von Dir genutzten Komponenten.

Könntest Du deren DCUs gefahrlos löschen?
Wenn ja, mach' das bitte.

Habe mir irgendwann angewöhnt, alle DCUs in ein einziges Ausgabeverzeichnis schreiben zu lassen. Projektübergreifend.

Tritt der Fehler auf, wird dieses Verzeichnis umbenannt und ein neues Verzeichnis mit dem "alten" Namen erstellt.
Dann muss Delphi alles neu machen. Wird dann das Fehlen von Quellen oder DCUs bemängelt, so schaue ich zuerst, ob ich dazu eine Quelltextdatei habe. Der wird dann ins Projekt aufgenommen oder der Suchpfad entsprechend erweitert. Habe ich keinen Quelltext, so wird die DCU aus dem umbenannten Verzeichnis ins aktuelle DCU-Verzeichnis kopiert.

Ist ggfls. sehr aufwändig, aber leider hab' ich da noch keine einfachere und effektivere Lösung gefunden.

Ok, nach Deiner letzten Meldung hat sich das dann wohl (erstmal) erledigt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:20 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