Was übersehe ich?
-
- Beiträge: 337
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Was übersehe ich?
Guten Abend,
ich bin mit meinem Projekt von einem Win 11 mit Lazarus Trunk 3.99 auf ein anderes Win 11 mit Lazarus Stable 3.2 umgezogen. Jetzt kommt beim compilieren folgende Meldung:
Error: Incompatible types: got "{Array Of Const/Constant Open} Array of SmallInt" expected "Array[0..50] Of LongInt"
Definiert ist das Array im Prozedurkopf unter "var" wie folgt:
yPos: array [0..50] of Integer = (253,285,290,285,285,279,279,279,274,274,274,274,270,270,270,270,266,266,266,266,262,262,262,262,258,258,258,258,245,239,253,256,256,252,233,233,221,221,149,133,128,118,108,97,91,81,75,67,56,40,28);
Im Quelltext weise ich an anderer Stelle andere Werte zu:
yPos:= [253,285,290,285,285,279,279,279,274,274,274,274,270,270,270,270,266,266,266,266,262,262,262,262,258,258,258,258,245,239,253,256,256,252,233,233,221,221,149,133,128,118,108,97,91,81,75,67,56,40,28];
Was habe ich denn da schon wieder falsch gemacht?
Ich wünsche allen ein schönes Osterfest!
Viele Grüße
Volker
ich bin mit meinem Projekt von einem Win 11 mit Lazarus Trunk 3.99 auf ein anderes Win 11 mit Lazarus Stable 3.2 umgezogen. Jetzt kommt beim compilieren folgende Meldung:
Error: Incompatible types: got "{Array Of Const/Constant Open} Array of SmallInt" expected "Array[0..50] Of LongInt"
Definiert ist das Array im Prozedurkopf unter "var" wie folgt:
yPos: array [0..50] of Integer = (253,285,290,285,285,279,279,279,274,274,274,274,270,270,270,270,266,266,266,266,262,262,262,262,258,258,258,258,245,239,253,256,256,252,233,233,221,221,149,133,128,118,108,97,91,81,75,67,56,40,28);
Im Quelltext weise ich an anderer Stelle andere Werte zu:
yPos:= [253,285,290,285,285,279,279,279,274,274,274,274,270,270,270,270,266,266,266,266,262,262,262,262,258,258,258,258,245,239,253,256,256,252,233,233,221,221,149,133,128,118,108,97,91,81,75,67,56,40,28];
Was habe ich denn da schon wieder falsch gemacht?
Ich wünsche allen ein schönes Osterfest!
Viele Grüße
Volker
-
- Beiträge: 6214
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Was übersehe ich?
Genau das ist der Grund. Diese Funktion ist momentan erst der Trunk vorbehalten.auf ein anderes Win 11 mit Lazarus Stable 3.2 umgezogen
Da werden wir noch einen Moment Geduld haben, bis das in der Stable geht.
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: 1436
- Registriert: Do 9. Jun 2011, 09:42
- OS, Lazarus, FPC: Lazarus Fixes FPC Stable
- CPU-Target: 32/64Bit
- Wohnort: Echzell
Re: Was übersehe ich?
Ich vermute mal, daß der Fehler weder bei der Deklaration des Arrays noch bei der Zuweisung moniert wird. Eher bei der Verwendung als Parameter an eine Prozedur oder Funktion. Wie schaut denn deren Deklaration aus?
Normalerweise müsste das so gehen:
Normalerweise müsste das so gehen:
Code: Alles auswählen
type
T50Int = array[0..50] of Integer;
const
yPos : T50Int = (253, 285,....);
procedure ProcessArr(a : T50Int);
begin
a[20] := 4;
end;
Zuletzt geändert von fliegermichl am Fr 29. Mär 2024, 12:02, insgesamt 1-mal geändert.
-
- Beiträge: 6214
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Was übersehe ich?
Nach meiner muss es an Trunk/Stable liegen. Ich habe es probiert und kann es nachvollziehen. Bei der stable bekomme ich den gleichen Fehler wie oben beschrieben.Ich vermute mal, daß der Fehler weder bei der Deklaration des Arrays noch bei der Zuweisung moniert wird.
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 337
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Was übersehe ich?
Ich wollte ja auch ursprünglich wieder eine Trunk verwenden, aber die aktuelle Trunk mit fpcupdeluxe installiert, installier mir kein ZEOS. Weder aus dem OPM, noch ein 8.0 Branch. Die Stabile-IDE 3.2 hat mir ZEOS 8.0 installiert.
Trunk fliegt mit dieser Fehlermeldung raus: ZDatasetParam.pas(2262,42) Error: Identifier idents no member "VUInt32" Hat hier jemand eine Idee was zu tun ist?
Auf meinem neuen Tuxedo-Linux bekomme ich mit fpcupdeluxe überhaupt kein Lazarus installiert. Weder Stable noch Trunk. Da steht im Log-File was von "double quoted strings" und make kann damit nix anfangen. Irgendwas in der Art. Ich hab's jetzt nicht im Kopf.
Die Debian-Pakete von Source-Forge habe ich noch nicht probiert.
Vielen Dank!
Trunk fliegt mit dieser Fehlermeldung raus: ZDatasetParam.pas(2262,42) Error: Identifier idents no member "VUInt32" Hat hier jemand eine Idee was zu tun ist?
Auf meinem neuen Tuxedo-Linux bekomme ich mit fpcupdeluxe überhaupt kein Lazarus installiert. Weder Stable noch Trunk. Da steht im Log-File was von "double quoted strings" und make kann damit nix anfangen. Irgendwas in der Art. Ich hab's jetzt nicht im Kopf.
Die Debian-Pakete von Source-Forge habe ich noch nicht probiert.
Vielen Dank!
-
- Beiträge: 6214
- Registriert: Do 2. Jan 2014, 17:21
- OS, Lazarus, FPC: Linux (die neusten Trunk)
- CPU-Target: 64Bit
- Wohnort: Schweiz
Re: Was übersehe ich?
Dies wäre eine Variante. Dann läuft es auch mit der Stable.Trunk fliegt mit dieser Fehlermeldung raus: ZDatasetParam.pas(2262,42) Error: Identifier idents no member "VUInt32" Hat hier jemand eine Idee was zu tun ist?
Code: Alles auswählen
type
Tvector = array[0..2] of integer;
var
vector: Tvector = (3, 2, 1);
procedure SetVector;
const
v: Tvector = (1, 2, 3);
begin
vector := v;
end;
Mit Lazarus sehe ich grün
Mit Java und C/C++ sehe ich rot
Mit Java und C/C++ sehe ich rot
-
- Beiträge: 337
- Registriert: Di 17. Feb 2009, 10:44
- OS, Lazarus, FPC: Winux (L 0.9.xy FPC 2.2.z)
- CPU-Target: xxBit
Re: Was übersehe ich?
Hallo Matthias,
hab' vielen Dank für Deine Antworten. Wenn man das Array dynamisch erstellt und zuweist, dann funktioniert die Zuweisung von Eelementen über eckige Klammern "ganz normal". Man darf es dann nur nicht unter "var" vornehmen wollen, sondern im Rumpf der Prozedur zuerst mit SetLength(yPos, 51) die Größe festlegen und dann die Elemente zuweisen. yPos:= [1,2,3,4,5,6,... usw.]. Eben stinknormale Arrayoperation... Ich Trottel
hab' vielen Dank für Deine Antworten. Wenn man das Array dynamisch erstellt und zuweist, dann funktioniert die Zuweisung von Eelementen über eckige Klammern "ganz normal". Man darf es dann nur nicht unter "var" vornehmen wollen, sondern im Rumpf der Prozedur zuerst mit SetLength(yPos, 51) die Größe festlegen und dann die Elemente zuweisen. yPos:= [1,2,3,4,5,6,... usw.]. Eben stinknormale Arrayoperation... Ich Trottel