我是编程的新手,我有一个游戏(如Flappy Bird)。在我的项目中我通常需要更改Image,所以在我的MainForm中我有一个TImage。 *我的问题是我如何确切知道图像的路径当然我使用的是Image1.Picture.LoadFromFile
ex:我有 - 图片的名称:' Scene1.bmp&#39 ;; - TForm1.Button1Click(发件人:TObject);
*任务:当用户点击按钮时,图像将会 ' LoadFromFile'将Scene1.bmp设置为TImage
请帮帮我,非常感谢!
答案 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'