【问题标题】:Loading picture from file with filename as a changing variable使用文件名作为更改变量从文件加载图片
【发布时间】:2018-10-16 18:13:48
【问题描述】:

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

【问题讨论】:

  • imgSheet.Picture.LoadFromFile(frmMusic.Image + '.png');
  • 我试过了,还是不行。不过,感谢您的评论。
  • 我试过了,不行是没有意义的。根据您发布的代码,它可以工作,所以要么a)您使用的代码与您在此处发布的代码不同; b)您没有正确完成我在之前的评论中指出的内容;或 c) 您没有清楚或准确地描述您的问题。
  • 好吧,我休息了一下,删除了 tblMusiekstukke.First ;退出while循环。我保留了 '''',因为它给出了一个撇号,并在 '.png' 之后添加了它。现在我得到的唯一错误是系统无法获取指定的文件。查了很多遍,名字都一样。
  • 这可能是我个人的错误,而不是德尔福作为程序的错误,但我尝试使用 imgSheet.Picture.LoadFromFile(frmMusic.Image + '.png');它仍然说找不到指定的文件,并且它与保存项目的位置相同。再次感谢您的评论。

标签: delphi delphi-2010


【解决方案1】:

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

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

试着把这个值放到Label

【讨论】:

  • 感谢您的努力和评论,但我终于成功了,谢谢!
【解决方案2】:

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

然后我这样做了:

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

我也删了

tblMusiekstukke.First ; 

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

【讨论】:

  • 为什么要在同一个文件中添加两个扩展名?
猜你喜欢
  • 2014-06-25
  • 2021-04-15
  • 1970-01-01
  • 2020-01-17
  • 2016-11-23
  • 2018-01-21
  • 2023-03-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多