Ich benutze die ksTableView-Komponente (so ähnlich wie TListView, nur mit mehr Möglichkeiten, über GetIt zu beziehen). Unter Android tritt das Phänomen auf, dass in deren EndUpdate-Methode o.a.
Exception auftritt. Per Debugger bin ich dann in FMX.Graphics in der Methode TBitmap.SetSize fündig geworden.
Zitat:
Delphi-Quellcode:
procedure TBitmap.SetSize(const AWidth, AHeight: Integer);
var
SaveBitmapScale: Single;
begin
if (FImage.FWidth <> AWidth) or (FImage.FHeight <> AHeight) then
begin
if (AWidth > CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize)) or
(AHeight > CanvasClass.GetAttribute(TCanvasAttribute.MaxBitmapSize))
then
raise EBitmapSizeTooBig.CreateRes(@SBitmapSizeTooBig);
...
end;
end;
Zum Zeitpunkt der
Exception steht AWidth auf 100 und AHeight auf 64. Wenn ich den Code richtig verfolgt habe, gibt CanvasClass.GetAttribute(TCanvasAttribute.MaxBitma pSize) $FFFF zurück, also 65535, das liegt in beiden Fällen weit über den übergebenen Werten, selbst wenn man beide multipliziert. Hat jemand eine Ahnung, weshalb der Vergleich nicht stimmt?
[edit] Nachtrag: ich habe die FMX.Graphics.pas mal ins Projektverzeichnis kopiert und geringfügig geändert. Dabei ist herausgekommen, dass mitnichten $FFFF zurückkommt, sondern 0. Es wird immer wilder. [/edit]