AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Algorithmen, Datenstrukturen und Klassendesign "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fehler

"Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fehler

Ein Thema von basti1994 · begonnen am 21. Apr 2012 · letzter Beitrag vom 21. Apr 2012
Antwort Antwort
basti1994

Registriert seit: 21. Apr 2012
3 Beiträge
 
#1

"Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fehler

  Alt 21. Apr 2012, 14:37
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:
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;
und rufe es dann mit
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
Snake(Elements);
showmessage('haha' + inttostr(Elements[0].x));
end;
auf.

Die andere Unit schaut so aus:
Delphi-Quellcode:
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.
bekomme aber leider bei
Snake(Elements); die Fehlermeldung das die Typen nicht die gleichen sind, sind sie doch aber oder?

Mit freundlichen Grüßen Basti
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.830 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe

  Alt 21. Apr 2012, 14:44
Lagere

Delphi-Quellcode:
interface
type

TRSnakeElements = record
                 x:integer;
                 y:integer;
  end;
  TSnakeElements = array of TRSnakeElements;
in eine eigene Unit aus, und binde diese in den anderen ein.

Die Typen heissen zwar gleich und sehen genauso aus, sind aber für den Compiler 2 verschiedene Typen
Markus Kinzler
  Mit Zitat antworten Zitat
basti1994

Registriert seit: 21. Apr 2012
3 Beiträge
 
#3

AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe

  Alt 21. Apr 2012, 15:01
Hmmmm,

jetzt schauts so aus:

Delphi-Quellcode:
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.
in der anderen unit:
Delphi-Quellcode:
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.
und das ausgelagerte:
Delphi-Quellcode:
unit UTypen;

interface
type

TRSnakeElements = record
                 x:integer;
                 y:integer;
  end;
  TSnakeElements = array of TRSnakeElements;

implementation

end.
bekomme aber trotzdem noch den gleichen Fehler , hast du noch ne Idee ?

Mfg Basti
  Mit Zitat antworten Zitat
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#4

AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe

  Alt 21. Apr 2012, 15:09
Elements : TSnakeElements;
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.459 Beiträge
 
Delphi 11 Alexandria
 
#5

AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe

  Alt 21. Apr 2012, 15:10
Elements ist immer noch als Array of TRSnakeElements deklariert. Mach daraus einmal TSnakeElements.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
basti1994

Registriert seit: 21. Apr 2012
3 Beiträge
 
#6

AW: "Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen" Fe

  Alt 21. Apr 2012, 15:11
ups, was fürn dummer Fehler ....ich danke euch , jetzt gehts
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf