![]() |
"Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fehler
Hallo,
ich habe ein programm erstellt, welches ein dynamisches array von einer Unit an die andere übermitteln soll dazu hab ich ich in der aufrufenden Unit dass array so Deklariert:
Delphi-Quellcode:
und rufe es dann mit
type
TRSnakeElements = record x:integer; y:integer; end; TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Elements : array of TRSnakeElements;
Delphi-Quellcode:
auf.
procedure TForm1.Button1Click(Sender: TObject);
begin Snake(Elements); showmessage('haha' + inttostr(Elements[0].x)); end; Die andere Unit schaut so aus:
Delphi-Quellcode:
bekomme aber leider bei
unit USnake;
interface type TRSnakeElements = record x:integer; y:integer; end; TSnakeElements = array of TRSnakeElements; procedure Snake(var Elements: TSnakeElements); implementation procedure Snake(var Elements: TSnakeElements); begin SetLength(Elements, 2); Elements[0].x:=3; Elements[0].y:=4; end; end.
Delphi-Quellcode:
die Fehlermeldung das die Typen nicht die gleichen sind, sind sie doch aber oder?
Snake(Elements);
Mit freundlichen Grüßen Basti |
AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe
Lagere
Delphi-Quellcode:
in eine eigene Unit aus, und binde diese in den anderen ein.
interface
type TRSnakeElements = record x:integer; y:integer; end; TSnakeElements = array of TRSnakeElements; Die Typen heissen zwar gleich und sehen genauso aus, sind aber für den Compiler 2 verschiedene Typen |
AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe
Hmmmm,
jetzt schauts so aus:
Delphi-Quellcode:
in der anderen unit:
unit UVisualization;
interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs,StdCtrls, USnake,UTypen; type TForm1 = class(TForm) Button1: TButton; procedure Button1Click(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; Elements : array of TRSnakeElements; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin Snake(Elements); showmessage('test' + inttostr(Elements[0].x)); end; end.
Delphi-Quellcode:
und das ausgelagerte:
unit USnake;
interface uses UTypen; procedure Snake(var Elements: TSnakeElements); implementation procedure Snake(var Elements: TSnakeElements); begin SetLength(Elements, 2); Elements[0].x:=3; Elements[0].y:=4; end; end.
Delphi-Quellcode:
bekomme aber trotzdem noch den gleichen Fehler :(, hast du noch ne Idee ?
unit UTypen;
interface type TRSnakeElements = record x:integer; y:integer; end; TSnakeElements = array of TRSnakeElements; implementation end. Mfg Basti |
AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe
Elements : TSnakeElements;
|
AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe
Elements ist immer noch als Array of TRSnakeElements deklariert. Mach daraus einmal TSnakeElements.
|
AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe
ups, was fürn dummer Fehler ....ich danke euch , jetzt gehts :)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 11:16 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