Aber ich habe jetzt nochmals per Debugger Schritt für Schritt den Programmablauf nachvollzogen. Der Fehler besteht nach wie vor, obwohl ich eindeutig in TmyObj.calc auf das richtige myObj in myObjs_liste[myObjnummer] mit einer existierenden und mit dem korrekten .wert versehenen .inputliste[1] zugreife.
Es besteht noch immer das gleiche Problem, dass ich lokalen Variablen keinen Wert zuweisen kann.
Code: Alles auswählen
procedure TmyObj2.calc(myObjnummer:word);
var I_, calc:myrange;
i,j:word;
begin
calc:=0;
...
nun geändert zu
procedure TmyObj2.calc(myObjnummer:word);
var I_, ergebnis:myrange;
i,j:word;
begin
ergebnis:=0;
...
p.s. es gibt keine globale Variable ergebnis
vor ergebnis:=0; laut debugger ergebnis=5689572
nach ergebnis:=0; laut debugger ergebnis=5689344
verwende ich statt
var I_, ergebnis:myrange;
nun
var I_, ergebnis:Shortint; (denn -10..10 ist ja eine subrange u.a. von shortint)
dann funktioniert es.
vor ergebnis:=0; laut debugger ergebnis=-28
nach ergebnis:=0; laut debugger ergebnis=0
Also ist es eine Sache von
typ myrange = -10..10;
Gibt es da was, was in Delphi geht aber in Lazarus/FPC nicht?
btw.: überall
{$IFDEF FPC}
{$MODE Delphi}
{$ENDIF}
gesetzt