从文件中加载图片,文件名作为更改变量

时间:2018-10-16 18:13:49

标签: delphi delphi-2010

我目前正在忙于一个项目,非常疲倦,无法直截了当,并且在从文件加载图片时遇到了一些麻烦,其中图片的名称存储在一个变量中,该变量根据某人在组合框中选择的内容。组合框已排序,第一个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的名称填充,而Musicpiece的名称又是文件的名称。人们从组合框中选择所需的音乐片段,并显示该特定音乐片段的图片。

我用于加载文件的代码:

procedure TfrmSheets.FormShow(Sender: TObject);
begin

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

end.

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

2 个答案:

答案 0 :(得分:0)

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

您能检查一下什么包含frmMusic.Image

尝试将此值设置为Label

答案 1 :(得分:-2)

好的,我整理了一下。它的工作原理是不在两边都加撇号,这是我的问题之一,但是是我在这里发现的另一个解决方案:The system cannot find the file specified

然后我这样做了:

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

我也删除了

tblMusiekstukke.First ; 

退出While循环,因为它一直将表的标记始终放置在第一项上。现在,它可以完美运行。