【发布时间】: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