Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Inkompatible Typen obwohl Deklaration identisch (https://www.delphipraxis.net/109302-inkompatible-typen-obwohl-deklaration-identisch.html)

lugy2001 27. Feb 2008 18:48


Inkompatible Typen obwohl Deklaration identisch
 
Ich sitz im Moment an meiner Facharbeit (Stufe 12) die dringend fertig werden muss und ich komm nicht weiter wegen eines Fehlers der für mich einfach unerklärlich ist:

In zwei Units also auch 2 Klassen verwende ich den Datentyp TExtBewegGerade, wenn ich jetzt aber von dem Formular auf die Klasse zu greifen will sagt mir der Debugger immer, dass die Dateitypen inkompatibel sind obwohl sie definitiv gleich sind (hab mind. 10 mal Copy+Paste gemacht).

Delphi-Quellcode:
[...]
type
  TExtBewegGerade = record
    M: extended;
    N: extended;
    Richtung : Shortint; //-1,0,1
    PosX : extended;
    PosY : extended;
  end;
  [...]
  TSpieler = class(TComponent) [...]
Delphi-Quellcode:
[...]type
  TExtBewegGerade = record
      M: extended;
      N: extended;
      Richtung : Shortint; //-1,0,1
      PosX : extended;
      PosY : extended;
    end;
  TAlleSpieler = array[1..6] of TSpieler;
  TSpiel = class(TForm)

[...]
procedure TSpiel.tiBewegungTimer(Sender: TObject);
begin
[...]
BewegGeradeI := AlleSpieler[i].getBewegGerade; //hier tritt der fehler auf ([Pascal Fehler] mSpiel.pas(165): E2010 Inkompatible Typen: 'mSpiel.TExtBewegGerade' und 'mSpieler.TExtBewegGerade')
BewegGeradeJ := AlleSpieler[j].getBewegGerade; //hier auch
[...]
end;
Versucht hab ich schon den Typ umzubennen, die Deklaration mit in die procedure rein zu nehmen... hat alles nix gebracht.

Ich hoffe ihr könnt mir helfen. Bis jetzt hat mir DP schon per Suche viel geholfen :dp:

lugy2001

mkinzler 27. Feb 2008 18:49

Re: Inkompatible Typen obwohl Deklaration identisch
 
Du darfst den Typ nur einmal deklarieren

DeddyH 27. Feb 2008 18:52

Re: Inkompatible Typen obwohl Deklaration identisch
 
Erstell Dir am Besten eine eigene Unit für Deine Typen, Konstanten etc. und binde diese in beiden Units ein.

lugy2001 27. Feb 2008 18:58

Re: Inkompatible Typen obwohl Deklaration identisch
 
Danke für die Hilfe und den Tipp! Jetzt gehts natürlich.

Hab soviel versucht.. aber leider nur einmal versucht es auszuklammern.. leider in der falschen Datei.

lugy2001

himitsu 27. Feb 2008 19:05

Re: Inkompatible Typen obwohl Deklaration identisch
 
tja, in der RTTI(?) steht halt für jede Deklaration ein eigener Eintrag und Typen sind nur identisch, wenn sie auf den selben Eintrag verweisen,
also nur wenn es die selbe Deklaration ist.


Aufbau der Typen wird halt nicht verglichen (was oftmals von Vorteil ist :angel2: ).


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:43 Uhr.

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