Du musst nicht die Include-Dateien in Deinen Quell-Code einbinden, sondern die Units, zu welchen die Include-Dateien gehören.
Um welche Definitionen geht es?
Ich weiß leider nicht, wie ich mein Problem anschaulicher erklären kann. Habe deshalb für mein Programm eine andere Lösung benutzt.
Hier das Problem dennoch als Verständnisfrage:
Ich habe zum Beispiel diese Include Dateien in irgendeiner meiner units aufgeführt:
Delphi-Quellcode:
unit myUnit;
interface
uses
Windows, Sysutils, Classes, ....;
{$i base.inc} //Definitionen
{$i other.inc}
{$i further.inc}
implementation
{$i base.inc} //wegen eventueller Implementationen
{$i other.inc}
{$i further.inc}
end.
Nun gebe es in
base.inc Definitionen, die in weiteren Definitionen in
other.inc und
further.inc vorausgesetzt werden, sagen wir in nachfolgenden
record Strukturen in denen solche in vorherigen Include Dateien definierten Typen für Datenfelder verwendet werden oder Konstantenwerte aus zb.
base.inc in
other.inc oder
further.inc wieder benötigt werden, sei es für Rcordvarianten oder Zuweisung neuer Konstanten mit den Werten, die in einer der vorher aufgeführten Include Dateien definiert sind.
Der FPC Compiler findet einige der Definitionen nicht, wenn sie in nachfolgenden Include Dateien wieder benötigt werden.
Ich dachte, das es da eine Lösung geben sollte, da Freepascal zum Beispiel in der
Unit Windows nur die Include Dateien mit allen Definitionen aufgeführt hat.
Warum funktioniert das mit den Standard Units von Freepascal nicht aber mit eigenen Units, in denen ich dieselbe Technik verwende.
Bitte diskutiert nicht über Sinn und Unsinn dieser Technik, die ja Freepascal auch verwendet, sondern nur über das Problem an sich, wraum das mit Freepascal geht, aber nicht, wenn ich das ebenfalls anwenden will.
Für mein Programm habe ich jetzt einfach eine große
Unit mit allen benötigten Definitionen geschrieben und brauche daher keine Include Datei mehr.
Das Problem interessiert mich aber dennoch.