Hallo,
hab ein Problem bei der Objektfreigabe auf mobilen Platformen (Delphi 12).
Wenn ich in einem (dynamischen) Array visuelle Komponenten freigeben will, bekomme ich "manchmal" eine
Exception (welche ich auch nicht abfangen kann).
Auf Android weniger oft wie auf iOS.
Hat jemand eine Idee?
Hier mein Code:
Code:
var ar: Array of TRectangle;
procedure TForm1.Aufbau(Sender: TObject);
var i, anz, newanz: Integer;
r: TRectangle;
begin
try
anz := Length(ar);
newanz := Random(50) + 1;
if (newanz < anz) then
begin
for i := anz downto newanz + 1 do
begin
ar[i - 1].Free; // Hier
Exception!?
end;
SetLength(ar, newanz);
end else
if (newanz > anz) then
begin
SetLength(ar, newanz);
for i := anz + 1 to newanz do
begin
r := TRectangle.Create(GridLayout1);
r.Parent := GridLayout1;
r.OnClick := Aufbau;
ar[i - 1] := r;
end;
end;
for i := 0 to newanz - 1 do
begin
ar[i].Fill.Color := $FF000000 + Random($FFFFFF);
end;
except on E:
Exception do
// wird nicht aufgerufen!
end;
end;