我正在使用Delphi XE8中的应用程序。
当我在手机上运行程序时,它会给我一个错误:
加载位图失败(image.png)
我的代码如下:
if ListBox1.ItemIndex = 0 then
begin
img.bitmap.LoadFromFile('Image.png');
iMin:= Round(iNumber * 1);
iMax:= Round(iNumber *13.24);
iAvg:= Round(iNumber * 2.59);
label7.Text:= inttostr(iMin);
label5.Text:= inttostr(iAvg);
label6.Text:= inttostr(iMax);
label2.Text:= 'Minimum';
label3.Text:= 'Average';
label4.Text:= 'Maximum';
end
else
...
请注意图像与我的程序保存在同一文件夹中。
答案 0 :(得分:2)
不要使用相对路径。始终使用绝对路径。
您需要使用Deployment Manager将图像文件部署到手机上的相应文件夹中,然后使用System.IOUtils.TPath
类在运行时找到该文件夹:
Standard RTL Path Functions across the Supported Target Platforms
在Android上,将映像文件部署到./assets/internal
文件夹,然后在运行时使用TPath.GetDocumentsPath()
方法,如本博客所述:
Deploying and accessing local files on iOS and Android
EDN文档和博客都未提及的是,您还需要将System.StartupCopy
单元添加到应用的uses
子句中。
uses
..., System.IOUtils, System.StartupCopy;
...
img.bitmap.LoadFromFile(TPath.Combine(TPath.GetDocumentsPath, 'Image.png'));