Знай путь Имидж

Я новичок в программировании и у меня есть игра (например, Flappy Bird). В моем проекте я обычно меняю изображение, поэтому в MainForm у меня есть TImage. * Мой вопрос: как я могу точно знать, где путь изображения, конечно, я использую Image1.Picture.LoadFromFile

пример: у меня есть - имя картинки: 'Scene1.bmp'; - TForm1.Button1Click(Отправитель: TObject);

* Миссия: когда пользователь нажимает кнопку, изображение будет 'LoadFromFile', чтобы установить Scene1.bmp в TImage

Пожалуйста, помогите мне, спасибо большое!

2 ответа

Когда вы обращаетесь к файлу в вашем приложении только с помощью File-Name (например, "Scene1.bmp"), ваше приложение будет искать файл по пути вашего exe-файла приложения как Default-path вашего приложения, но Default-Path может быть изменив по некоторым причинам, вы можете установить путь по умолчанию для вашего приложения с помощью SetCurrentDir функция и получить путь по умолчанию с GetCurrentDir функция

Каждый процесс имеет "текущий каталог" в качестве пути по умолчанию, и его можно изменить, поэтому вы всегда должны работать с полным адресом файла, который хотите использовать

Вы можете получить полный путь к exe-файлу вашего приложения из ExeName поле Application Учебный класс:

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

С ExtractFilePath Функция, которую вы можете получить Путь без File-Name вашего exe-файла приложения, фактически адрес папки exe-файла, а затем вы можете использовать этот адрес для работы с файлами помимо вашего exe-файла, например:

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

Вы можете быть уверены, что 'Scene1.bmp' будет найден, и путь вашего приложения по умолчанию не имеет значения

КАК МОЖНО Точно ЗНАТЬ ГДЕ ПУТЬ ИЗОБРАЖЕНИЯ

Текущий каталог приложения + 'Scene1.bmp':

ImageFullAddress := GetCurrentDir + 'Scene1.bmp'

Вы можете использовать папку (или подпапку) файла EXE вашего приложения для хранения вашего файла Scene1.bmp.

В VCL у вас есть глобальный объект Application типа TApplication, Вы можете использовать собственность Application.ExeName чтобы получить имя исполняемого файла приложения, включая информацию о пути. Смотрите документацию.

С помощью TPath.GetDirectoryName вы можете извлечь части диска и каталога. Смотрите эту документацию.

Так, например, путь к подпапке с именем Sub TPath.GetDirectoryName(Application.ExeName)+'\Sub';

Таким образом, вы можете создать полный путь и имя файла и использовать его в LoadFromFile,

Другие вопросы по тегам