IDE Window: Codetools Defines Editor/de

From Free Pascal wiki
Revision as of 15:01, 27 July 2006 by Swen (talk | contribs)
Jump to navigationJump to search

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

Wichtig

Diese Werte werden nur von den Codetools verwendet, nicht vom Compiler. Um Suchpfade einzurichten verwenden sie die Umgebungseinstellungen, Compilereinstellungen, package editors und den Projektinspektor. Die IDE erzeugt automatisch Knoten für diese Werte.

Dieser Dialog ist hauptsächlich für das Debugging, wenn die Codetools anders als der Compiler analysieren. Oder um Delphi Quellen in der Lazarus IDE einzurichten.

Einleitung

Die Codetools bieten Funktionen, um Pascal Quelltexte zu analysieren - FreePascal, Delphi, Kylix. Um die Pascal Quelltexte zu finden, benötigen sie Suchpfade und um die IFDEFs zu finden, benötigen sie die Compiler flags. Diese Werte sind durch Regeln definiert - die define templates.

Für jedes Verzeichnis verwalten die Codetools eine Reihe von Werten. Das bedeutet, daß jede Unit in einem Verzeichnis die selben Werte teilt (Pfade und flags). Deshalb sollten sie zwei Projekte/Packages nur dann in ein Verzeichnis packen, wenn sie die selben Einstellungen verwenden. Andererseits erlaubt dieses System, eine beliebige Anzahl von verschiedenen Quellen zu selben Zeit zu handhaben. Zum Beispiel können sie Delphi und FreePascal Quelltexte haben. Die Delphi Quelltexte verwenden die Delphi system.pas, während die FPC Quelltexte die FPC system.pp verwenden. Oder sie können zwei verschiedene FPC Versionen haben. Oder verschiedene FPC cross Quellen (zum Beispiel für Linux und Windows). Sie müssen die IDE nicht neu starten oder irgendetwas dafür neu kompilieren. Anmerkung: Der Compiler kann natürlich nur einen Quellentyp handhaben.

Dieser Dialog erlaubt die define templates zu erforschen und zu bearbeiten.

Alle Werte und Variablen können Makros enthalten. Eine Variable mit einem leeren Wert ist dennoch festgelegt. Das bedeutet, daß 'IFDEF variable' immer noch 'true' ergibt. Um eine Variable zu eliminieren, verwenden sie 'Zurücksetzen'.

Block

Dieser Knotentyp existiert nur bei Gruppenknoten.

Verzeichnis

Um nur für ein spezifisches Verzeichnis gültige Knoten zu erzeugen, verwenden sie diesen Knotentyp. Die Kind Knoten werden nur für das in Value spezifizierte Verzeichnis analysiert. Definition und Zurücksetzen Knoten werden Variablen setzen/löschen nur für dieses Verzeichnis, nicht für die Unterverzeichnisse. Um Variablen für Unterverzeichnisse zu setzen/löschen, erzeugen sie einen Kind Knoten vom Typ Verzeichnis oder verwenden Rekursion festlegen, Rekursion zurücknehmen.

Definition

Setzt einen flag/Wert für das aktuelle Verzeichnis. Beispiele:

  • Set Name to 'Def1'. Jetzt wird IFDEF Def1 true sein und in einer Quelle wird {$IFDEF Def1} von den Codetools analysiert.
  • Set Name to 'Def1' and Value to '123'. Dasselbe wie oben, aber zusätzlich ergibt IF Def1=123 true.
  • Set Name to 'Def1' and Value to '$(Def1);bogus'. Dies wird ';bogus' dem Wert von Def1 anfügen.

Rekursion festlegen

Dasselbe wie Definition, aber für das aktuelle Verzeichnis und alle Unterverzeichnisse.

Zurücksetzen

Eliminiert eine Variable aus der aktuellen Definitionsmenge.

Rekursion zurücknehmen

Dasselbe wie Zurücksetzen, aber für das aktuelle Verzeichnis und alle Unterverzeichnisse.

Alles zurücksetzen

Dasselbe wie Rekursion zurücknehmen, aber eliminiert alle Variablen. Hilfreich für Verzeichnisse, die ihre eigene Welt bilden, zum Beispiel die FPC Quelle.

IfDef

Wenn die Variable definiert ist werden die Kind Knoten ausgeführt.

IfNDef

Wenn die Variable nicht definiert ist werden die Kind Knoten ausgeführt.

If

Führt den Ausdruck in Value aus und wenn das Ergebnis '1' ist dann werden die Kind Knoten ausgeführt. Die Syntax ist die selbe wie beim Compiler. Zum Beispiel 'defined(avariable)' gibt '1' zurück, wenn die Variable definiert ist, sonst '0'. Beispiele:

  • Set 'Value' to 'defined(linux) and defined(i386)'
  • Um auf eine spezifische FPC Version zu prüfen: 'VER2_0 or VER2_2'. Die Variablen werden ersetzt durch ihre Werte. Leere oder nicht definierte Werte ergeben '0'.
  • Um die Werte von zwei Variablen zu vergleichen verwenden sie: '$(#TargetOS)'='$(#SrcOS)'. WICHTIG: Wenn sie die Hochkommas vergessen, passiert das Folgende: Zuerst werden die Makros ersetzt, was linux=unix ergibt, welches vorher ersetzt wurde durch die Werte der Variablen: 1=1, was immer true ergibt.

ElseIf

Wenn alle vorherigen If false ergeben, dann wird der ElseIf oder Else Knoten ausgeführt. Das ElseIf ist das selbe wie ein Else If.

Else

Wenn alle vorherigen If oder ElseIf false ergeben, dann wird dieser Knoten ausgeführt.

Menü

Beenden - Speichern und Ende

Speichert die Änderungen und schließt den Dialog.

Beenden - Beenden ohne Speichern

Verwirft die Änderungen und schließt den Dialog.

Editieren - Knoten nach oben bewegen

Bewegt den gewählten Knoten vor den nächsten upper sibling.

Editieren - Knoten nach unten bewegen

Bewegt den gewählten Knoten unter den nächsten lower sibling.

Editieren - Knoten eine Ebene nach oben bewegen

Bewegt den gewählten Knoten to parent node.

Editieren - Knoten eine Ebene nach unten bewegen

Macht den gewählten Knoten zu einem child of the previous sibling.

Editieren - Knoten darunter einfügen

Erzeugt einen neuen Knoten und fügt ihn unter dem gewählten Knoten ein.

Editieren - Knoten als Kind einfügen

Erzeugt einen neuen Knoten und fügt ihn als child des gewählten Knotens ein.

Editieren - Knoten löschen

Löscht den gewählten Knoten.

Editieren - Konvertiere Knoten

Ändert den Typ des gewählten Knotens.

Werkzeuge - Vorschau öffnen

Öffnet das CodeTools-Verzeichniswerte Fenster.

Vorlage einfügen

Erzeugt einen neuen Knoten aus den Vorlagen und fügt ihn unter dem gewählten Knoten ein.

Treeview

Wählen sie einen Knoten und betrachten sie die Details unten.

Gewählter Knoten

Name

Beschreibung

Variable

Wert als Text

Zeigt den Wert.

Wert als Dateipfade

Splittet den Wert mit Semikolons und zeigt jeden Pfad auf einer separaten Zeile.