IDE Window: Unit info/de

From Lazarus wiki
Revision as of 10:59, 28 October 2012 by Swen (talk | contribs) (→‎Unit-Pfade)
Jump to navigationJump to search

Deutsch (de) English (en) français (fr)

Dieser Dialog zeigt verschiedene Informationen der aktuellen Datei im Quelltexteditor.

Allgemein

  • Name: der Unit-Name wie er im Quellcode geschrieben ist. Ansonsten ist es der Dateiname ohne Erweiterung und Pfad.
  • Typ: Der highlighter Typ. Dies kann geändert werden im Popup Menü des Quelltexteditors.
  • im Projekt: Wenn die Datei Teil des Projekts ist. Dies kann geändert werden im Projektinspektor oder den Projekt -> Aufnehmen/Entfernen Menüeinträgen.
  • Größe: Größe der Datei in Bytes.
  • Zeilen: Anzahl der Quellcodezeilen.
  • Pfad: Vollständiger Dateiname.
  • Eingebunden von: Diese Datei wurde das letzte Mal einbezogen von dieser Quellcodedatei. Zum Beispiel mittels einer {$I filename.inc} Include Direktive. Dies wird automatisch gesetzt jedes Mal wenn die IDE die Unit mit der Include Direktive analysiert. Sie können das löschen mit der Leeren Schaltfläche. Sie können Suche -> Zu Include Direktive springen verwenden um zur Include Direktive der Vorgängerdatei zu springen.
  • Leeren: Diese Schaltfläche leert die 'Eingebunden von'.

Unit-Pfade

Dies sind die Unitpfade, die von der IDE für diese Datei verwendet werden. Die Unitpfade werden verwendet zur Suche nach .ppu, .pas, .pp, .p Dateien. Normalerweise werden diese Pfade an den Compiler gegeben. Aber es gibt Fälle, wo dies nicht der Fall ist. Und es zeigt nicht die Unitpfade, die in der Compiler Konfigurationsdatei (fpc.cfg) definiert sind.

Diese Pfade werden erzeugt durch die Regeln in Werkzeuge -> Editor für CodeTools-Eigenschaften. Alle Dateien in einem Verzeichnis benutzen die selben Suchpfade (unit paths, include paths, ...). Wenn dies ein Projektverzeichnis ist, werden alle Projekt-Unitpfade hinzugefügt. Wenn das Verzeichnis zu einem Package gehört, werden dessen Unitpfade hinzugefügt. Wenn sie ein Projekt und ein Package in ein Verzeichnis packen, werden beide Pfade hinzugefügt. Deshalb wird empfohlen, Packages und Projekten eigene Verzeichnisse zu geben.

Unterschied zwischen Compiler Suchpfaden und IDE Suchpfaden: Normalerweise ist der Unterschied ohne Bedeutung. Der Compiler wird in einem Verzeichnis mit einer Reihe von Suchpfaden aufgerufen. Zum Beispiel: Es gibt 4 Packages:

 /home/user/package1/package1.lpk
 /home/user/package2/package2.lpk
 /home/user/package3/package3.lpk verwendet package1 und package2
 /home/user/package4/package4.lpk verwendet package1 und package2

Package3 ist kompiliert in /home/user/package3 mit dem Unitpfad /home/user/package1/;/home/user/package2/. Wenn der Compiler eine Unit findet in /home/user/package2/ und sie kompiliert, wendet er alle Unitpfade an, inklusive dem Pfad zu /home/user/package3/. Dies ist normalerweise nicht gewollt und deshalb definiert ein Standardpackage ein Ausgabeverzeichnis. Aber für dieses Beispiel nehmen wir an, dass das Package seine .ppu Dateien in das Quellverzeichnis kompiliert.

Wenn der Compiler aufgerufen wird für package4, dann wird er in einem anderen Verzeichnis mit anderen Suchpfaden gestartet. Hier wird er aufgerufen in /home/user/package4 mit dem Unitpfad /home/user/package1/;/home/user/package2/. Wenn der Compiler eine Unit findet in /home/user/package2/ und sie kompiliert, wendet er alle Unitpfade an, inklusive dem Pfad zu package4. Das bedeutet, dass der Compiler die Units in package2 mit zwei unterschiedlichen Unitpfaden kompiliert. Dies ist normalerweise eine schlechte Idee, weil das Ergebnis von der Reihenfolge abhängt - ob sie zuerst package3 kompilieren und dann package4 oder anders herum. Aber in der realen Welt (z.B. der Delphi Welt) ist das verbreiteter als mancher annehmen würde. Wenn Packages Units mit dem selben Namen enthalten, ist es klar, dass die Reihenfolge der Dateipfade in den Suchpfaden wichtig wird.

Die IDE löst dies, indem sie die Suchpfade für jedes Verzeichnis sammelt. Das bedeutet zum Beispiel, dass die Suchpfade für die Lazarus Quellen ihre eigenen Unitpfade haben und nicht die Unitpfade zu ihrem Projekt enthalten. Ein Verzeichnis, das nicht Teil ihres Projekts ist, enthält nicht die Unitpfade ihres Projekts. Auf diese Weise können sie Delphi VCL Quellen und Lazarus LCL Quellen durchsuchen, die beide Units mit den selben Namen enthalten.

Include-Pfade

Dasselbe wie Unitpfade, aber für die Includepfade. Suchpfade für Include Direktiven {$I filename.inc} oder {$INCLUDE filename.inc}.

Quelltext-Pfade

Dies ist der Unitpfad plus den kompilierte Quellen Pfade. Zum Beispiel:

 /home/user/project
 /home/user/package/lib

Das Projekt verwendet das Package. Die Package Quelldateien sind in /home/user/package und die Ausgabedateien (.ppu) des Packages sind in /home/user/package/lib abgelegt. Der Unitpfad des Projekts wird den Pfad zum Ausgabeverzeichnis des Packages enthalten - /home/user/package/lib. Wenn der Compiler aufgerufen wird um das Projekt zu kompilieren, findet er die .ppu Dateien des Packages, aber nicht die die Quellen (.pas) des Packages. Aus diese Weise kann er das Package nicht rekompilieren, was gut ist, weil die Compilereinstellungen des Projekts wahrscheinlich anders sind als für das Package. Die IDE sollte die Quelldateien (.pas) finden. Sie weiß, dass /home/user/package/lib das Ausgabeverzeichnis des Package ist. Deshalb fügt sie die Unitpfade des Package zum Quelltext-Pfad des Projekts hinzu. Der Zusatz wird compiled source path genannt.

Anzeige der CodeTools-Werte

Siehe Codetools Directory Values