繁体   English   中英

从文件中加载图片,文件名作为一个变化的变量

[英]Loading picture from file with filename as a changing variable

我目前正忙于一个项目,非常累,我无法直接思考,而且我在从文件加载图片时遇到了一些问题,其中图片的名称存储在一个变量中,该变量根据某人的内容而变化在组合框中选择。 组合框已排序,第一个 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格式。 非常感谢。

当心。 如果frmMusic.Image只包含文件名,则图片文件必须驻留在\\you_project\\Win32\\Debug

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

尝试将此值放入Label

好的,我整理出来了。 它的工作原理是不在任一侧添加撇号,这是我的问题之一,但我在这里找到的问题的另一种解决方案是: 系统找不到指定的文件

然后我这样做了:

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

我也删了

tblMusiekstukke.First ; 

退出 While 循环,因为它不断将表格的标记放置到第一项。 它现在可以完美运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM