我使用 Delphi XE 10.3 Firemonkey 为 Android 创建了一个应用程序。我已经尝试了所有可能的想法并在网上搜索了几天,但找不到解决方案。我有许多 PNG 图像作为资产 (RT_RCDATA) 加载。
var InStream: TResourceStream;
begin
InStream := TResourceStream.Create(HInstance,'PngImage_'+inttostr(trunc(TrackBar2.Value)), RT_RCDATA);
try
Image1.Bitmap.LoadFromStream(InStream);
finally
InStream.Free;
end;
end;
然后每次我单击按钮时,图像都会正确显示。
但是什么不起作用,(以及我应该能够做的)是:
procedure TForm1.Timer1Timer(Sender: TObject);
var InStream: TResourceStream;
begin
InStream := TResourceStream.Create(HInstance, 'PngImage_'+inttostr(imgcount), RT_RCDATA);
label5.Text:='PngImage_'+inttostr(layerCount);
try
Image1.Bitmap.LoadFromStream(InStream);
finally
InStream.Free;
end;
imgcount:=imgcount+1;
//FOrce refresh
//image1.Repaint; // this seems to do nothing
//image1.Visible:=false; image1.Visible:=true; // this also does nothing to help
//application.processmessages; // neither this one
end
如果我尝试加载并显示一系列图像,它们之间有一些延迟(如自动幻灯片),则图像不会更新;如果我尝试显示 images1-2-3-4,则仅显示图像 4。我已经尝试了一切,从重绘、刷新方法、隐藏/显示可见性、调用 application.processmessages、加载位图并将其绘制为画布、使用计时器,但我找不到解决方案。
谢谢