[lazarus] More of a FPC question but... dynamic arrays
aj_genius at hotmail.com
Sun Sep 29 21:39:56 EDT 2002
On 29 Sep 2002 20:11:42 -0500
"Tony Maro" <tonym at nlisc.com> wrote:
>In Delphi 4 I used dynamically sized arrays using setlength to resize
>them as needed.
>I haven't been able to get it to work in FPC / Lazarus, and it looks
>like the setlength function isn't there. In fact, defining the array
> MyArray: array of TObject;
>Doesn't work either...
>This was a feature they added in Delphi 4. I've got over 60,000 lines
>of code that rely heavily on this that I was looking to migrate to
>Have I just missed something, or must I write my own linked list manager
>or use a TCollection to get this to work?
Well this anoyed me to no end when I started working with FPC, but basically
Dyn. Arrays don't exist in the FPC 1.0 branch, only in the unstable 1.1
branch. However, C dynamic arrays, aka Pointer arrays, do work. I am
guessing you do not know how to do them, but it is really quite simple:
myarray : ^TObject;
reallocmem(myarray, 4*SizeOf(TObject));//allocmem to handle 4 objects
myarray := thisobject;//set the 3 entry
reallocmem(myarray, 0);//free memory
you simply use reallocmem in place of setlength, and multiply the length by
the sizeof the type it contains.. at one point I actually created wrappers
arround this to make more like Delphi dynamic arrays..but its been awhile so
I do not know if I still have it. essentially though you should be able to
port a lot of code with ease. by doing some sort of wrappers.. etc.
MSN Photos is the easiest way to share and print your photos:
More information about the Lazarus