But this results in a SIGSEGV exception at the line 3 (for i:= 0 to nFrame-1 do MyBitmap:= tBitmap.Create;).
Rik
First reformat that code to make it easier to debug, like this:
for i:= 0 to nFrame-1 do
begin
MyBitmap[i]:= tBitmap.Create;
end;
That way you don't get the sigdev as soon as you try to execute the for loop, instead you'll get it during the assignment of MyBitmap. What you really want to see now is, what's the value of "I" when you get the sigdev. Does it happen immediately (when I = 0 or later ?)
Also, before you even enter the loop, create a variable, TheSize (for instance) and assign it the length of MyBitmap. TheSize := Length(MyBitmap); and ensure you get the expected length (the one you set using SetLength). For good measure, after that assignment do, TheSize := sizeof(MyBitmap); that one should equal 8 times the length (in 64bit), if it isn't then, the array, for some reason, isn't large enough to accommodate the handles of all the bitmaps you are creating.
Basically, the first thing to do when debugging is to check that everything is as expected, that often helps figure out what is going wrong.