Hi,
was du hier siehst
Zitat von
Helmi:
Main.pas:
Delphi-Quellcode:
...
implementation
uses unit2; //<== neu hinzugefügt
und in der Unit2.pas:
Delphi-Quellcode:
interface
uses Dialogs, SysUtils, main; //<== main hinzugefügt
//<== type-deklaration entfernt
ist gaaaaaaaanz schlechter Stil. Natürlich wird das so funktionieren, aber es gibt keinen Grund, warum man so unsauber arbeiten sollte. Deshalb rate ich dir dringend davon ab. In vielen anderen Sprachen (die keine Unterscheidung zwischen einem Interface und einem Implementation Abschnitt haben) ist ein solches Konstrukt verboten und führt zu einer Fehlermeldung des Compilers. Immerhin wird hier über Kreuz eingebunden.
Das klingt nicht schön und ist auch nicht schön. Du hast hier eine Abhängigkeit geschaffen, die du vermeiden kannst. Die Nachteile wurden glaube ich schon woanders festgestellt und lassen sich leicht finden.
Zur Lösung: Verwende eine dritte
Unit, in der du den Datentyp festlegst. Unit3 (als Beispiel) enthält dann nur noch die Typdeklaration. Diese
Unit kann von den beiden anderen eingebunden werden und alles funktioniert (die Namen sollten natürlich besser als unit2 und unit3 gewählt werden).
Unit3 könnte also so aussehen:
Delphi-Quellcode:
unit Unit3;
interface
type
TDatenfelder =
record
a, b: extended;
end;
TDatenfelderArray =
Array of TDatenfelder;
implementation
end.
Die kannst du dann wie gewohnt in allen Units verwenden (ist einfach sauberer!).
Gruß Der Unwissende