![]() |
inkompatible Typen owohl gleicher Strukturaufbau
Hi
ich verwende in meinem Programm 2Module, die jeweils ein Record mit gleicher struktur und gleichem Namen definieren (ich will an den beiden Modulen nichts ändern, da sie auch standalone wo eingebunden werden sollen).
Delphi-Quellcode:
in meinem Programm (unit3) will ich folgende Zuweisung machen
unit1:
type TPoint2D = record x,y:double; end; var Pkt1: TPoint2D; unit2: type TPoint2D = record x,y:double; end; var Pkt2: TPoint2D; Pkt1:=Pkt2 nur schreit der Compiler dann: Inkompatible Typen: unit1.TPoint2D und unit2.TPoint2D; Das Verstehe ich nicht ganz. Es funktioniert zwar, wenn ich Pkt2 auf unit1.TPoint2D caste, aber das ist etwas mühsam. Habe ich da einen Denkfehler oder geht das wirklich nicht. Danke für eure Kommentare lg Martin |
Re: inkompatible Typen owohl gleicher Strukturaufbau
Auch wenn die Typen den gleichen Aufbau haben, sind es zwei verschiedene Typen.
Die Lösung: Den Typen nur in einer Unit deklarieren und in der anderen per uses einbinden. |
Re: inkompatible Typen owohl gleicher Strukturaufbau
Hi,
ich glaube das kann Delphi wirklich nicht. Vielleicht ist mir auch nur kein Weg begegnet, aber um nicht ständig zu casten kannst du am einfachsten eine dritte Unit verwenden, die nur Globale Definitionen (oder halt auch Konstanten, etc) enthält und dann diese in beiden Units einbinden. Ja, wie gesagt, vielleicht gibt es noch ne ganz hübsche (und sinnvolle) andere Lösung. Gruß Der Unwissende |
Re: inkompatible Typen owohl gleicher Strukturaufbau
Es waere wirklich schoen wenn die Leute erst mal Pascal lernen wuerden.
Zwei getrennt deklarierte Record-Typen sind nie gleich. Das ist auch der Grund warum man keinen Pointertyp in einem Parameter deklarieren kann Bei "procedure Blabla(Unsinn: ^Integer);" kann es keinen kompatiblen Typ geben. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:00 Uhr. |
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