App crashes in for-loop lazarus / 43-Android ---------------------------------------------------------------------- biologic · 2025-03-09 19:22 I have an error in my code, but can not see what's wrong. If someone can help, many thanks.  Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  procedure TAndroidModule1.ToGrayButtonClick(Sender: TObject);var    bmp: TBGRABitmap;     p: PBGRAPixel;     memory_stream: TMemoryStream;     bmp_writer: TFPWriterBMP;     image_width, image_height,    pixel_number,    number_of_pixels: Integer;     image_byte_array: array of Byte;     pixel_color_value: Integer = 0;     i : integer;  pixelcolor : integer;    begin    //ShowMessage('Convert');     image_width := 512;    image_height := 512;    number_of_pixels := image_width * image_height;     SetLength(image_byte_array, number_of_pixels);     showmessage('after SetLength(array)');     pixel_color_value := 0;     //ShowMessage('Size in bytes of Integer : '+inttostr(sizeof(integer)));    // = 4 bytes     // error in for- loop:     showmessage('number_of_pixels : '+inttostr(number_of_pixels));     for pixel_number:=number_of_pixels-1 downto 0 do       <--- error here    begin      image_byte_array[pixel_number] := pixel_color_value;      pixel_color_value := pixel_color_value+1;    end;       ----> the following code is not executed:     ShowMessage('after for-loop');    { bmp := TBGRABitmap.Create(image_width, image_height);     try       p := bmp.Data;       for pixel_number := bmp.NbPixels-1 downto 0 do     begin         if(current_color = 1) then        begin          p^.red := image_byte_array[pixel_number];          p^.green := Byte(0);          p^.blue := Byte(0);        end        else if(current_color = 2) then        begin          p^.red := Byte(0);        p^.green := image_byte_array[pixel_number];          p^.blue := Byte(0);        end        else if(current_color = 3) then        begin          p^.red := Byte(0);          p^.green := Byte(0);        p^.blue := image_byte_array[pixel_number];        end;           inc(p);       end;       bmp.InvalidateBitmap;       bmp_writer := TFPWriterBMP.Create;       try         memory_stream := TMemoryStream.Create;         try             bmp_writer.ImageWrite(memory_stream, bmp);             Bitmap1.LoadFromStream(memory_stream);             ImageView1.SetImage(Bitmap1.GetImage());         finally           memory_stream.Free;         end;       finally         bmp_writer.Free;       end;     finally       bmp.Free;     end;     }       inc(current_color);     if(current_color > 3) then     current_color := 1;  end; ---------------------------------------------------------------------- biologic · 2025-03-09 19:42 Solved. The App crashed when the value of 'pixel_color_value' was greater than 255. Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i for pixel_number:=number_of_pixels-1 downto 0 do    begin      image_byte_array[pixel_number] := pixel_color_value;      pixel_color_value := pixel_color_value+1;      if pixel_color_value >= 255 then         pixel_color_value:=0;    end; ---------------------------------------------------------------------- Joanna · 2025-03-10 01:56 Glad you solved it but why not do Code: Pascal  [Select][+][-]window.onload = function(){var x1 = document.getElementById("main_content_section"); if (x1) { var x = document.getElementsByClassName("geshi");for (var i = 0; i  pixel_color_value:byte If it should never be greater than 255. ---------------------------------------------------------------------- biologic · 2025-03-10 10:22 Yes, good idea. Thanks for helping. ---------------------------------------------------------------------- Joanna · 2025-03-10 12:05 You’re welcome