Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Uses Uses Help! (https://www.delphipraxis.net/15186-uses-uses-help.html)

Corelgott 23. Jan 2004 14:43


Uses Uses Help!
 
Hi @ all,

also ich habe ein Problem mit den Units und mit den Uses-Klauseln. Und zwar:

Delphi-Quellcode:
unit Unit1;

interface
uses unit2;

type Tx = class
   private
     MyHeight : Integer;
   public
     property Height : Integer read MyHeight write MyHeight;
end;

implementation


code....
Delphi-Quellcode:
unit unit2;

interface

implementation
uses unit2;

var
  test : TX;

procedure Init();
begin
   test.height := 10; ///<---- Das mag er irgendwie nicht !!!
end;
So oder so ungefähr....
Aber der Compiler spucktmir da nur immer irgendwelche Speicherfehler aus...

Warum??

Kann mir da jemand helfen?!

thx

Corelgott

Matze 23. Jan 2004 14:45

Re: Uses Uses Help!
 
1. Titel ändern! :warn:
2. Warum in Unit 2 noch "uses unit2; "?

Gepard 23. Jan 2004 14:50

Re: Uses Uses Help!
 
Mein ich aber auch

bei Unit2

muss hin
Delphi-Quellcode:
uses unit1;
[edit=thomasdrewermann]Semikolon ergänzt Mfg, thomasdrewermann[/edit]

scp 23. Jan 2004 14:58

Re: Uses Uses Help!
 
Wen Tx kein Form ist, dann musst du schon so vorgehen:
Delphi-Quellcode:
var
  test : TX;

procedure Init();
begin
   test := TX.Create; ///<---- Test muss vorher initialisiert werden.
   test.height := 10; ///<---- Das mag er dann auch! 
end;

Matze 23. Jan 2004 14:58

Re: Uses Uses Help!
 
Ich vermute mal, das hat das Problem nicht gelöst. ;)

[Edit]Achso, es ist kein Form... Kann ich ja nicht wissen.[/Edit]

Phoenix 23. Jan 2004 14:59

Re: Uses Uses Help!
 
Gar nie!

Wenn in Unit 1 schon Unit 2 in der uses-Klauses angegeben ist darf unit 2 unter gar keinen Umständen auf Unit 1 verweisen. So ein direkter Kreuzbezug merkt der compiler zwar noch, aber wenn dann noch eine dritte unit einen Kreuzbezug herstellt, dann läuft der Compiler in eine endlosschleife!


Lösung: "uses Unit2;" in Unit 1 ersatzlos streichen!
in Unit2: "uses unit1;" einführen.

UNd dann vorher freilich TX createn und erst dann benutzen.

Sascha 23. Jan 2004 15:02

Re: Uses Uses Help!
 
Könnte es sich vielleicht um einen Kreuzverweis handeln?

Dann Probier mal folgendes:

Delphi-Quellcode:
unit Unit1;

interface
uses unit2;

type Tx = class
   private
     MyHeight : Integer;
   public
     property Height : Integer read MyHeight write MyHeight;
end;

implementation


code....
Delphi-Quellcode:
unit unit2;

interface

uses unit1;
implementation

var
  test : TX;

procedure Init();
begin
   test.height := 10; ///<---- Das mag er irgendwie nicht !!!
end;
Dass sollte das Problem beheben // hoffentlich

Gepard 23. Jan 2004 15:06

Re: Uses Uses Help!
 
stimmt schon es kommt aber auch darauf an wo du die unit einbindest
ob im Interface-Abschnitt oder im Implementations-Abschnitt
da reagiert der Compiler ja anders

scp 23. Jan 2004 15:10

Re: Uses Uses Help!
 
Zitat:

Zitat von Sascha
Könnte es sich vielleicht um einen Kreuzverweis handeln?

Dann Probier mal folgendes:

Delphi-Quellcode:
// ....
Dass sollte das Problem beheben // hoffentlich

Genau so, wird es gar nicht mehr gehen, da fängt er erst gar nicht an zu kompilieren.
Es muss mindestens eine der Kreuz-uses im implementation Bereich stehen, das war schon richtig.

Corelgott 23. Jan 2004 18:21

Re: Uses Uses Help!
 
Hi

also das Problem ist ein bisschen komplexer, als diesen etwas knappen Code den ich getippt habe... (War meine Dummheit)

Also: natürlich heist das "unit" und nicht "uses"!
2. Ich Create auch die Variable bevor ich sie benutzt (hab ich vergessen zu posten)

Aber immer, wenn ich den eine Variable / Property setze gibt's nen Speicherfehler...

Das ganze ist ein bisschen doller verschachtelt:

Mein Programm (App)
Erzeugt ein Objekt (Obj1-> Steht in seiner eignen Unit)
Obj1 erzeugt im Constructor ein weiteres Objekt (obj2 andere Klasse)

So um beim einstellen von Obj2 das kommt das....

Das ganze soll nachher man ein Pong werden; wird aber doch recht komplex. Ich bin deswegen auch nicht sicher, ob irgendwer noch durch den Code durchsteigen würde, wenn ich ihn posten würde. (Hab selbst schon manchmal Probleme damit....)

Werde mal sehen, dass ich da was zurecht schneide...

thx erst mal so weit!!!

Muss ich bei einer solchen verschachtelung von Objekten irgendetwas beachten?
(Ich habe im Prog vom Thread bis hin zum Array alles drin... Aber der Fehler tritt schon beim setzen einer Integer variable auf....)


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:10 Uhr.
Seite 1 von 2  1 2      

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