【发布时间】:2017-03-10 00:42:54
【问题描述】:
我有以下基本代码:
procedure TForm4.shrek1Click(Sender: TObject);
begin
shrek1.Picture.LoadFromFile('donkey.jpeg');
end;
其中shrek1 是TImage,donkey.jpeg 是我希望shrek1 在单击时加载的图像。
donkey.jpeg 位于几乎所有其他相关项目文件的同一目录中,但是当我尝试运行代码时出现错误:
异常类 EFOpenError 带有消息“无法打开文件“\(为隐私而删除目录)\donkey.jpeg”。系统找不到指定的文件
我做错了什么?
【问题讨论】:
-
不要依赖相对路径。通过完整路径。并检查你是否做对了。如果系统告诉您该文件不存在,请相信它。
-
如果您不提供绝对路径,可执行文件将在与可执行文件相同的路径中查找图像。您可能需要检查该文件是否存在于 Win32\Debug(或 Win32\Release,具体取决于您的构建)文件夹中,因为这是您的可执行文件所在的位置。要验证这一点,请尝试将 donkey.jpeg 文件复制到您的 Debug/Release 文件夹。
-
@Rohit: "如果您不提供绝对路径,可执行文件将在与可执行文件相同的路径中查找图像" - 仅当 调用进程的当前工作目录是可执行路径。这不能保证。
-
没错,@RemyLebeau - 我假设 TForm4 只是应用程序中的另一种形式。无论如何,最好使用绝对路径... ????
标签: delphi delphi-2010 timage