Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Mehrdimensionales dynamisches Array an Prozedur übergeben (https://www.delphipraxis.net/37556-mehrdimensionales-dynamisches-array-prozedur-uebergeben.html)

Mavarik 23. Apr 2015 10:22

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Zitat:

Zitat von DeddyH (Beitrag 1298875)
Hast Du die Deklaration des Typs im implementation-Teil untergebracht? Dann verschieb sie mal in den interface-Teil.

Und die nächste Frage wird welche sein?

Ich bekomme jetzt die Fehlermeldung: "F2047 Zirkuläre Unit-Referenz auf Unit1" was muss ich machen...?

Daher vorab...

Delphi-Quellcode:
Unit Definitionen;

Interface

type
  TArray2D = array[0..5] of array[0..2] of Double; // Oder TArray2D = Array[0..5,0..2] of Double;
Delphi-Quellcode:
Unit Unit1;

Interface

Uses Definitionen...
Delphi-Quellcode:
Unit Unit2;

Interface

Uses Definitionen...
Mavarik

DeddyH 23. Apr 2015 10:30

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Das ist ja genau das, was ich als erste Möglichkeit vorgeschlagen hatte. Die nächste Frage ist aber: wieso müssen sich die Units gegenseitig einbinden?

Mavarik 23. Apr 2015 10:34

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Zitat:

Zitat von DeddyH (Beitrag 1298882)
Das ist ja genau das, was ich als erste Möglichkeit vorgeschlagen hatte. Die nächste Frage ist aber: wieso müssen sich die Units gegenseitig einbinden?

Naja... das ergibt sich doch aus dem Kontext:

Zitat:

Zitat von ndy (Beitrag 1298878)
Steht in Unit1 direkt unter Interface

Unit1:

Zitat:

Zitat von ndy (Beitrag 1298873)
Habe die Typdeklaration aus der Unit2

:duck:

ndy 23. Apr 2015 10:39

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Ich muss dazu sagen, dass ich das Programm nicht allein geschrieben habe, sondern ein bestehendes Programm erweitere. Da ich ein Anfänger auf dem Gebiet der (Delphi)-Programmierung bin habe ich mir einiges von meinem Vorgänger abgeschaut, unter anderem das gegenseitige Einbinden der Units.


Irgendwo habe ich mal gehört, dass globale Variablen (dementsprechend auch Typen?) wohl verpöhnt sind. Oder wäre das eine Lösungsmöglichkeit. Mit globalen Variablen/Typen kenne ich mich aber leider auch nicht aus.

DeddyH 23. Apr 2015 10:41

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Nochmal ganz langsam: wenn die Typdeklaration der einzige Grund dafür ist, dann wie gesagt entweder in eine eigene Unit packen oder alternativ dort, wo damit gearbeitet wird (IMO also dort, wo die Klasse deklariert ist).
Delphi-Quellcode:
unit Work;

interface

uses ...;

type
  TMyType = ...;

  TMyClass = class
    ...
    procedure DoSomething(Foo: TMyType);
  end;
Typ und Klasse sind nun in allen Units verfügbar, die Work einbinden.
Delphi-Quellcode:
unit Use;

interface

uses ..., Work;
Ist aber in Use etwas deklariert, worauf Work zugreifen soll, müssen sie sich (zunächst) gegenseitig einbinden. Das ist kein gutes Design, daher sollte man sich überlegen, wie man das vermeiden kann.

Mavarik 23. Apr 2015 10:42

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Zitat:

Zitat von ndy (Beitrag 1298886)
Oder wäre das eine Lösungsmöglichkeit. Mit globalen Variablen/Typen kenne ich mich aber leider auch nicht aus.

Schau mal hier :oops:

ndy 23. Apr 2015 10:54

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Zitat:

Zitat von DeddyH (Beitrag 1298888)
Delphi-Quellcode:
unit Use;

interface

uses ..., Work;


Aha, da lag der Fehlerteufel.

Die Unit work war in der Unit Use im Implementation- und nicht im Interface-Bereich eingebunden. Hatte das irgendwo mal gelesen, dass man das eigentlich so machen sollte :gruebel:


Vielen Dank!

ndy 23. Apr 2015 10:57

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Zitat:

Zitat von Mavarik (Beitrag 1298889)
Zitat:

Zitat von ndy (Beitrag 1298886)
Oder wäre das eine Lösungsmöglichkeit. Mit globalen Variablen/Typen kenne ich mich aber leider auch nicht aus.

Schau mal hier :oops:

Tut mir leid aber ich stelle mich wohl zu dumm an, als dass ich erkenne worauf du hinaus willst.

PS: Wie erreiche ich, dass der Thread nichtmehr als offene Frage angezeigt wird?

DeddyH 23. Apr 2015 10:57

AW: Mehrdimensionales dynamisches Array an Prozedur übergeben
 
Du kannst sie auch im implementation-Abschnitt einbinden, allerdings darf dann im interface-Abschnitt auf keinen Typen und keine Routine zugegriffen werden, der/die in der eingebundenen Unit steht.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:17 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz