从文件中加载图片并将文件名作为可变变量

Loading picture from file with filename as a changing variable

我目前正忙于一个项目,非常疲倦,无法正常思考,而且我在从文件中加载图片时遇到了一些问题,其中图片的名称存储在一个变量中根据某人在组合框中选择的内容而变化。组合框已排序,第一个 ItemIndex 是 table 中第一个片段的名称。

这是将文件名声明为变量的(可怕且平庸的)代码:

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 name' 字段中项目的名称完全相同。数组(字符串)应填充音乐作品的名称,这也是文件的名称。在组合框中,此人选择他们想要的音乐片段,并显示该特定音乐片段的图片。

我有用于加载文件的代码:

procedure TfrmSheets.FormShow(Sender: TObject);
begin

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

end.

如您所见,我真的不知道该怎么做。所有图片均为.png 格式。非常感谢。

小心。如果 frmMusic.Image 仅包含文件名,则图片文件必须位于 \you_project\Win32\Debug

你能查一下,里面有什么吗frmMusic.Image

尝试将此值设置为 Label

好的,我整理好了。它的工作原理是不在两边添加撇号,这是我的问题之一,但我在这里找到的另一个解决问题的方法是:

然后我这样做了:

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

我也删除了

tblMusiekstukke.First ; 

在 While 循环之外,因为它不断地将 table 的标记放置到第一项。它现在完美运行。