2010-04-08 18 views
5

Dies ist ein seltsames Verhalten von meiner D2006, wie es manchmal nur passiert. Ich habe ein Projekt, das ich debuggen möchte. Die Datei, die ich debuggen möchte, heißt "Main.pas". Ich habe ein anderes nicht verwandtes Projekt mit dem gleichen Unit-Namen und manchmal die Debug-Eingabeaufforderung mir die falsche Main-Datei anstelle der Haupteinheit aus dem aktuellen Projekt. Dies ist mir mit anderen Dateien mit dem gleichen Namen passiert. Ich kann dann nicht debuggen, da die Debug-Tasten nicht funktionieren (sie tun einfach nichts). Haben Sie das gleiche Problem erlebt? Wie kann ich es reparieren?Delphi debug eine falsche Einheit

Danke.

+0

auch in Delphi 2009 für mich passiert, wenn ich an zwei Projekten arbeiten, in denen Einheiten den gleichen Namen haben - wenn ich eine Datei öffnen, die die andere Version gehört, startet der Debugger die verwenden Quellverzeichnis anderer Versionen anstelle der Verzeichnisse der geöffneten Projektdatei (dpr). – mjn

Antwort

5

Verwenden Sie relative Pfade?

Wenn ja, habe ich herausgefunden, dass es hilfreich ist, das Arbeitsverzeichnis auf mein Projektverzeichnis zu setzen und eine Datei aus meinem Projektordner mit Datei-> Öffnen zu laden. Durch das Navigieren und Laden wird das Arbeitsverzeichnis scheinbar festgelegt, wodurch der Fall, in dem Sie DENKEN, dass Sie Pfade relativ zu Ihrem Projekt verwenden, behoben wird. Delphi interpretiert sie jedoch relativ zum Arbeitsverzeichnis der IDE. Schließen Sie jedoch zuerst alle anderen Registerkarten, um Fehler zu vermeiden. Da der Delphi-Compiler eine DLL ist, interagiert er intensiv mit der IDE und hat wahrscheinlich Zugriff darauf, welche Dateien geöffnet werden. (es kann nicht gespeicherte Dateien kompilieren!)

Wenn nicht, könnte es ein ungewöhnliches Ereignis sein, aber immer noch den gleichen Ursprung haben. Entwickeln Sie eine Angewohnheit, zuerst andere Dateien zu schließen (Rechtsklick auf Tab-> Alle anderen schließen), und fixieren Sie das Arbeitsverzeichnis (mit der Ladeeinheit über Datei - Öffnen Sie die Problemumgehung).

Ich habe das Gefühl, die BDS-Serie von IDEs leiden darunter mehr als die klassischen, aber das Problem bestand auch in den klassischen. Könnte so einfach sein wie die Verwendung von ausgefalleneren Opendialog-Optionen in BDS, wodurch die Chance auf Änderungen am Arbeitsverzeichnis erhöht wird.

update Auch nur Projekte öffnen, wenn keine anderen Projekte geöffnet sind hilft. Klicken Sie also immer auf das alte Projekt, bevor Sie das neue öffnen, und klicken Sie nicht auf ein Projekt im Windows Explorer, wenn die IDE mit einem anderen geladenen Projekt geöffnet ist.

Delphi XE leidet immer noch unter diesem

+0

Ich glaube, das ist absolut richtig. jetzt, wenn ich eine nicht verwandte Datei öffne, benutze ich nie Datei, Öffnen ... ich ziehe die Datei vom Explorer nach Delphi oder lasse Explorer entscheiden, wie man die Datei öffnet. –

+0

+1. Ich habe den File-> Open Trick in meinen D2006 Tagen entdeckt und mich daran gewöhnt. Ich habe mich nie darum gekümmert zu prüfen, ob es in D2007 noch notwendig ist. –

+0

Ich brauche es immer noch in D2009 –

0

Sehen Sie sich die Ausgangs- und DCU-Verzeichnisse des Projekts an. Sie nehmen wahrscheinlich eine alte DCU aus einem freigegebenen DCU-Verzeichnis. Löschen Sie die DCUs und bauen Sie sie neu auf.

1

ich in das auch ausgeführt haben, und ich neige dazu jetzt Dateien eindeutige Namen zu geben, wie statt Main.pas, könnte es ProjectNameMain.pas sein

Überprüfen Sie Ihre Bibliothekspfade und Browsing Pfade in den Umgebungsoptionen

+0

Wenn Sie dieses Projekt als Ausgangspunkt für ein neues (oder paralleles) Projekt verwenden, müssen alle Dateien umbenannt werden: P - Stellen Sie sich vor, wie es wäre, SysUtils50, SysUtils60, SysUtils70 usw. in RTL und mit jedem neuen Delphi zu haben Versionsentwickler müssen alle Verweise auf RTL-Gerätenamen korrigieren :) – mjn

Verwandte Themen