0

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

例如:我有 - 图片名称:'Scene1.bmp';- 一个 TForm1.Button1Click(Sender: TObject);

*任务:当用户单击按钮时,图像将“LoadFromFile”将 Scene1.bmp 设置为 TImage

请帮助我,非常感谢!

4

2 回答 2

0

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

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

然后,您可以使用 TPath.GetDirectoryName 提取驱动器和目录部分。请参阅本文档

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

像这样,您可以构造完整的路径和文件名并在LoadFromFile.

于 2017-04-16T16:11:47.333 回答
0

当您仅使用文件名(如“Scene1.bmp”)处理应用程序中的文件时,您的应用程序将在应用程序 exe 文件的路径上搜索文件作为应用程序的默认路径,但默认路径可能是由于某些原因发生了更改,您可以使用函数设置应用程序的默认路径并使用函数SetCurrentDir获取默认路径GetCurrentDir

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

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

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'
于 2017-04-16T21:58:23.453 回答