Hi. I'm not sure if Delphi can do this, but I'm trying to create a variable that I can create once in the code and can't be changed, after its created. On the surface, it looks like I want a const, but I'm trying to create a variable which is an array that will only have its size defined at run-time.
unit myUnit INTERFACE var myBaseArray : myArrayType temp_i : integer; type myArrayType = array[1..nElements] of double; IMPLEMENTATION procedure myTestProcedure() var myArray : myArrayType; myCounter : integer; const myMaxCounter = 10; begin for myCounter := 1 to myMaxCounter do begin myArray := myBaseArray; // some code to then do some further stuff with myArray end; end; INITIALIZATION for temp_i := 1 to nElements do myBaseArray[temp_i] := 1.0; end.
Now this is not my actual code, but is illustrative of what I'm trying to do. In this scenario, nElements is read in from a file (i.e. not a const) and I want to make sure that in myTestProcedure, nothing can change myBaseArray.
If anyone knows how I can create this myBaseArray in such a way that nothing can accidentally edit it later (without passing it in as a function argument, as there will be dozens of arrays like this, going into dozens of different procedures and don't want to have to pass hundreds of arguments around all the time!), that would be great