知道Image的路径

时间:2017-04-16 11:46:38

标签: delphi timage

我是编程的新手,我有一个游戏(如Flappy Bird)。在我的项目中我通常需要更改Image,所以在我的MainForm中我有一个TImage。 *我的问题是我如何确切知道图像的路径当然我使用的是Image1.Picture.LoadFromFile

ex:我有 - 图片的名称:' Scene1.bmp&#39 ;;              - TForm1.Button1Click(发件人:TObject);

*任务:当用户点击按钮时,图像将会 ' LoadFromFile'将Scene1.bmp设置为TImage

请帮帮我,非常感谢!

2 个答案:

答案 0 :(得分:0)

您可以使用应用程序的EXE文件的文件夹(或子文件夹)来存储Scene1.bmp文件。

在VCL中,您拥有类型为Application的全局对象TApplication。您可以使用属性Application.ExeName来获取应用程序可执行文件的文件名,包括路径信息。请参阅documentation

使用TPath.GetDirectoryName,您可以提取驱动器和目录部件。请参阅此documentation

例如,名为Sub的子文件夹的路径为TPath.GetDirectoryName(Application.ExeName)+'\Sub';

像这样,您可以构建完整的路径和文件名,并在LoadFromFile中使用它。

答案 1 :(得分:0)

当你使用File-Name(如'Scene1.bmp')在应用程序中寻址文件时,你的应用程序将在应用程序exe文件的路径上搜索文件作为应用程序的默认路径,但是Default-由于某些原因,路径可能会更改,您可以使用SetCurrentDir函数设置应用程序的默认路径,并使用GetCurrentDir函数获取默认路径

每个进程都有一个“当前目录”作为默认路径并且它是可更改的,因此您应该始终使用您要使用的文件的完整地址

您可以从ExeName类的Application字段获取应用程序的完整路径exe文件:

var
 MyApplicationFullPath : String;
begin
 MyApplicationFullPath := Application.ExeName;
end;

使用ExtractFilePath函数,您可以获得没有应用程序exe文件的文件名的路径,实际上是exe文件的文件夹的地址,然后您可以使用此地址来处理文件除了您的exe文件,例如:

 Image1.Picture.LoadFromFile(ExtractFilePath(Application.ExeName) + 'Scene1.bmp')

您可以确定找到'Scene1.bmp'并且应用程序的默认路径无关紧要

  

我如何确切知道图像的路径

应用程序的当前目录+'Scene1.bmp':

ImageFullAddress := GetCurrentDir + 'Scene1.bmp'