Error: Incompatible type for arg no. 1: Got "Array[0..12] Of
Error: Incompatible type for arg no. 1: Got "Array[0..12] Of
Hallo,
Ich erhalte folgernde Fehlermeldung:
Error: Incompatible type for arg no. 1: Got "Array[0..12] Of TMyData", expected "{Open} Array Of MyData"
wie kann ich erreichen, dass ein Array [0..X] of TMyData oder eines anderen beliebigen Datentyps genau so angesprachen wird wie ein OpenArry of MyData. Im Array stehen Record Daten, von denen zwei Felder wirklich benutzt werden.
Hängt wohl mit meinem vorherigen Problem zusammen, durch ausgetauschte Units den Datentyp redefiniert zu haben. Aber dazu sollte es doch egal sein ob ich einem Open Array Parameter dann ein konkretes Array übergebe. Das sollte doch der Sinn von Open Arrays als Parameter sein?
Ich erhalte folgernde Fehlermeldung:
Error: Incompatible type for arg no. 1: Got "Array[0..12] Of TMyData", expected "{Open} Array Of MyData"
wie kann ich erreichen, dass ein Array [0..X] of TMyData oder eines anderen beliebigen Datentyps genau so angesprachen wird wie ein OpenArry of MyData. Im Array stehen Record Daten, von denen zwei Felder wirklich benutzt werden.
Hängt wohl mit meinem vorherigen Problem zusammen, durch ausgetauschte Units den Datentyp redefiniert zu haben. Aber dazu sollte es doch egal sein ob ich einem Open Array Parameter dann ein konkretes Array übergebe. Das sollte doch der Sinn von Open Arrays als Parameter sein?
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Error: Incompatible type for arg no. 1: Got "Array[0..12
Array-Typen und Open Arrays sind unterschiedliche Konstrukte. Eine Zuweisung ist nur in Grenzen möglich. Insbesondere wenn der Element-Typ abweicht, ist eine Zuweisung nie möglich.
Die Syntax im Zugriff ist identisch.
Die Syntax im Zugriff ist identisch.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Re: Error: Incompatible type for arg no. 1: Got "Array[0..12
Danke für die Antwort, auch wenn mir der Inhalt überhaupt nicht passt, weil ich nun genau deshalb meinen Quellcode mühsam anpassen muss. Hilft alles nichts. Da muss ich jetzt durch.
-
- Lazarusforum e. V.
- Beiträge: 3158
- Registriert: Di 22. Jul 2008, 19:27
- OS, Lazarus, FPC: Lazarus: SVN; FPC: svn; Win 10/Linux/Raspbian/openSUSE
- CPU-Target: 32bit x86 armhf
- Wohnort: Köln
- Kontaktdaten:
Re: Error: Incompatible type for arg no. 1: Got "Array[0..12
Ohne Quellcode kann dir auch niemand helfen, die Anpassungen auf ein Minimum zu reduzieren.
Du kannst z.B. einen Bereich eines dynamischen Arrays in einen Open Array Parameter übergeben:
Die Frage ist also, was du genau ändern willst.
Du kannst z.B. einen Bereich eines dynamischen Arrays in einen Open Array Parameter übergeben:
Code: Alles auswählen
type
TMyArray = array of integer;
procedure DoIt(const a: Array of integer);
var
a: TMyArray;
begin
a := SomeMagicGlobaArry; // Array befüllen
DoIt(a[0..5]);
end;
Die Frage ist also, was du genau ändern willst.
MfG Socke
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
Ein Gedicht braucht keinen Reim//Ich pack’ hier trotzdem einen rein
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Error: Incompatible type for arg no. 1: Got "Array[0..12
Mit der aktuellen Trunk von FPC ist folgendes möglich:
Code: Alles auswählen
var
a: array of byte;
begin
a := [1, 2, 3, 4, 5];
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
- fliegermichl
- Lazarusforum e. V.
- Beiträge: 1435
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Error: Incompatible type for arg no. 1: Got "Array[0..12
Mathias hat geschrieben:Mit der aktuellen Trunk von FPC ist folgendes möglich:Code: Alles auswählen
var
a: array of byte;
begin
a := [1, 2, 3, 4, 5];
end;
Gibt es mittlerweile auch eine Möglichkeit, daß als Konstante zu initialisieren a la?
Code: Alles auswählen
const
a : array of byte = (1, 5, 7, 9);
-
- Beiträge: 6194
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Error: Incompatible type for arg no. 1: Got "Array[0..12
Gibt es mittlerweile auch eine Möglichkeit, daß als Konstante zu initialisieren a la?
Es wird anstandslos kompiliert.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot