You simply need to declare a local variable for your loop counter:
Synchronize(
procedure
var
i: Integer;
begin
for i := 0 to iImageCount - 1 do
begin
iArrayOfBitmaps[i] := Form1.ImageEnMView1.GetBitmap(i);
Form1.ImageEnMView1.ReleaseBitmap(0);
end;
end
);
A loop variable must be local to the procedure in which the loop appears. In your code you had declared the variable as a local in a different procedure. And hence the compilation error.