Einzelnen Beitrag anzeigen

Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: Übergabe von dynamischen Arrays an Prozeduren

  Alt 4. Sep 2006, 13:18
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
  Mit Zitat antworten Zitat