![]() |
Delphi-Version: XE8
E2010 Inkompatible Typen: 'vec2arr' und 'Dynamic array
Hallo,
könnte mir bitte einer das Problem erklären ? Ich habe zwei Structs: vec2 = packed record x,y:double; constructor Create(xi, yi: Double); class operator add(v1, v2: vec2): vec2; class operator subtract(v1, v2: vec2): vec2; class operator multiply(d : double; v1 : vec2): vec2; end; THitObject = packed record X : Integer; Y : Integer; Offset : Integer; HitType : Integer; SliderType : String; SliderCoords : array of Vec2; end; ... einen typedef: vec2arr = array of vec2; ... und eine Funktion: function GetBezierPoint(points: vec2arr; numPoints: integer; t: double) : Vec2; ... die ich so aufrufen möchte: ... var v : vec2; v := GetBezierPoint(HitObjects[1].SliderCoords, length(HitObjects[1].SliderCoords), 0.05); ... und erhalte dann die im Titel gesagte Fehlermeldung beim 1. Parameter. Danke im voraus EDIT:// Fehler gefunden... Wusste nicht dass delphi zu dumm ist um zu verstehen dass der typedef das gleiche ist als was er definiert ist. |
AW: E2010 Inkompatible Typen: 'vec2arr' und 'Dynamic array
Was ist wenn du bei deinem THitObject aus
Delphi-Quellcode:
ein
SliderCoords : array of Vec2
Delphi-Quellcode:
machst?
SliderCoords : vec2arr
|
AW: E2010 Inkompatible Typen: 'vec2arr' und 'Dynamic array
Zitat:
Ich war zu naiv, ich dachte Delphi würde da tolleranter sein. Danke trotzdem! |
AW: E2010 Inkompatible Typen: 'vec2arr' und 'Dynamic array
array of T (T sei ein beliebiger Typ) an zwei unterschiedlichen stellen = 2 unterschiedliche Typen für Delphi und somit nicht zuweisungskompatibel, auch wenn sie binär identisch sind. Da hat nix mit zu dumm zu tun sondern ist so definiert.
Möchtest du an zwei verschiedenen Stellen ein zuweisungskompatibles dynamisches Array haben, dann benutze TArray<T>. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:48 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