Загрузка изображения из файла с именем файла в качестве изменяемой переменной - PullRequest
0 голосов
/ 16 октября 2018

В настоящее время я занят проектом, очень устал и не могу думать прямо, и у меня возникают некоторые проблемы при загрузке изображения из файла, где имя изображения хранится в переменной, которая изменяется в соответствии ск тому, что кто-то выбирает в выпадающем списке.Поле со списком отсортировано, и первый ItemIndex - это имя первого элемента в таблице.

Вот (ужасающий и посредственный) код для объявления имени файла переменной:

begin
  iTel := 0;

  with dmMusiekstukke do
  begin
    while not (tblMusiekstukke.Eof) AND (iTel <= 4) do
    begin
      tblMusiekstukke.First;
          Inc(iTel) ;
       arrMusic[itel] := tblMusiekstukke['Musicpiece name'] ;
       tblMusiekstukke.Next ;
      end;
  end;

        case cbbMusic.ItemIndex of
        0 : Image := arrMusic[1] ;
        1 : image := arrMusic[2] ;
        2 : Image := arrMusic[3] ;
        3 : Image := arrmusic[4] ;

        end;

       end;

Имя файла изображения точно совпадает с именем элемента вполе базы данных «Название музыкального произведения».Массив (из строки) должен быть заполнен именем Musicpiece, которое, в свою очередь, является также именем файла.Из выпадающего списка человек выбирает нужную музыкальную композицию, и отображается изображение для этой конкретной музыкальной композиции.

Код, который у меня есть для загрузки файла:

procedure TfrmSheets.FormShow(Sender: TObject);
begin

imgSheet.Picture.LoadFromFile(  '''' +  frmMusic.Image + '.png');
end;

end.

Как вы можетевидите, я действительно не уверен, как это сделать.Все картинки в формате .png.Большое спасибо.

Ответы [ 2 ]

0 голосов
/ 16 октября 2018

Хорошо, я разобрался.Это работало, не добавляя апострофы с обеих сторон, это было одной из моих проблем, но другое решение проблемы, которую я нашел здесь: Система не может найти указанный файл

Я тогда сделалthis:

imgSheet.Picture.LoadFromFile(frmMusic.Image + '.png.png');

Я также удалил

tblMusiekstukke.First ; 

из цикла While, поскольку он постоянно размещал маркер таблицы на первом элементе.Теперь это работает отлично.

0 голосов
/ 16 октября 2018

будь осторожен.если frmMusic.Image содержит только имя файла, тогда файл изображения должен находиться в \you_project\Win32\Debug

Можете ли вы проверить, что содержит frmMusic.Image

Попробуйте установить это значение в Label

...